Avatar billede Mik2000 Professor
08. oktober 2011 - 23:37 Der er 8 kommentarer og
1 løsning

\r\n problem

Jeg har et par sider som jeg har haft liggende på en server/webhotel

Efter en opdatering er den begyndt at ændre linjeskift til \r\n, således at når jeg gemmer teksten fra feltet i databasen, så er de tegn med, og vises så når man henter det fra databasen

Der er mulighed for at ændre på serverens opsætning deriblandt php.ini fil.

Nogle der ved om en indstilling kan gøre at den pludselig viser dette?
... vil meget gerne kunne rette det tilbage et sted, da jeg har mange steder det benyttes, og derfor vil det være næsten umuligt at indsætte kode til at rette det f.eks. str_replace

PHP: 5.3.2-1 (ubuntu4.7)
MySQL: 5.1.41
Avatar billede majbom Novice
09. oktober 2011 - 06:52 #1
skal du ikke bare smide din tekst igennem nl2br()?
Avatar billede Mik2000 Professor
09. oktober 2011 - 12:31 #2
Hej
Som jeg skriver er jeg interesseret i at ændre den indstilling på serveren der åbenbart er ændret, tilbage til den indstilling den stod til før, så det virker igen uden jeg skal lave en milion rettelser.
Så håber der er en der ved hvilken indstilling, eksempelvis i php.ini, som gør dette?
Avatar billede olebole Juniormester
10. oktober 2011 - 14:34 #3
<ole>

Hvad er det for en opdatering, der skulle være skyld i den ændrede virkemåde?

/mvh
</bole>
Avatar billede micma18_ Nybegynder
10. oktober 2011 - 15:44 #4
Det er jo måden hvorpå, linieskift angives i et tekstfelt kontra html kode.

nl2br() ændrer bare \r\n til <BR>.

Og det er nok generelt bare måden at gøre det på ;-)
Avatar billede olebole Juniormester
10. oktober 2011 - 16:07 #5
@micma18_: Nej, det er OS-afhængigt. Windows bruger som standard \r\n (Carriage Return efterfulgt af Line Feed), mens bl.a. Unix bruger \n - og bl.a. MacOS bruger \r
Avatar billede micma18_ Nybegynder
10. oktober 2011 - 16:24 #6
Forstår ikke dit problem så?

Er det fordi du allerede har nogle tekster, som er angivet med eks. \n og de nu hedder \r\n ?

Men hvis det er tilfældet, så er det vel ikke så stor et problem at lave med en str_replace()

eks.
$tekst = str_replace("\r\n", "<BR>", $tekst);
$tekst = str_replace("\n", "<BR>", $tekst);
$tekst = str_replace("\r", "<BR>", $tekst);
Avatar billede olebole Juniormester
10. oktober 2011 - 16:30 #7
@micma18_: Der er ingen, der siger, det er udskiftning til HTML break, der er problemet. nl2br indsætter <br> før både \r\n, \n\r, \r og \n
Avatar billede Mik2000 Professor
12. oktober 2011 - 01:56 #8
Hej
Tak for alle svarene
Problemet er at jeg allerede har en del sider, hvor der er en del steder man kan ændre indhold på, og derfor rigtig rigtig mange steder hvor man skal f.eks. bruge str_replace eller anden indbygget funktion

På alle disse har der ingen problemer været, indtil for ganske nyligt.
Her begyndte den pludselig at indsætte \r\n når man rettede noget på siderne hvis der var linjeskift i det.

Der benyttes plesk på serveren, og det ser ud til det er efter Plesk har lavet en autoupdate.

I den forbindelse kan den måske have ændret noget i php.ini, og for jeg ikke skal rette 100 sider, søger jeg om nogle ved hvad der kan være skyld i den pludselig gør det på en anden måde end før, så det kan rettes tilbage et sted?
Avatar billede Mik2000 Professor
24. oktober 2011 - 21:23 #9
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester