Avatar billede kongfjong Nybegynder
04. februar 2009 - 17:31 Der er 2 kommentarer og
1 løsning

Problem med linebreaks med fopen og fwrite

Hej

Jeg har et simpelt script til noget logging hvor jeg bruger fopen i append-mode til at lave filehandlen og fwrite til at skrive til filen.

Filen er ikke nødvendigvis oprettet i forvejen og det går fint med at oprette filen, som er en txt-fil. Men når jeg vil lave linebreaks, kommer jeg i problemer.

Jeg har prøvet alle kombinationer af fopen append-mode, hvor jeg også benytter mig af flagene t og b, i kombination med \r, \r\n og \n for at se hvad virkede, men intet af det virker, hverken på mit windows udviklingsmaskine, eller serveren som kører Linux.

Lidt eksempler:
$fh = fopen($dir . '/' . $file, 'a') <- alm. appendmode
$fh = fopen($dir . '/' . $file, 'at') <- appendmode med t-flaget som i følge dokumentationen er til Windows systemer
$fh = fopen($dir . '/' . $file, 'ab') <- appendmode med b-flaget til binary filer

$str = '==========\r\TEST\r==========\n';

fwrite($fh, $str);

Det der undrer mig er, at hvis jeg laver linjeskiftet "manuelt" i min fil, altså

$str = '==========
\r\TEST\r==========\n';

så kommer der rent faktisk linjeskift.

Hvad dælen gør jeg forkert?
Avatar billede hmortensen Nybegynder
04. februar 2009 - 17:43 #1
Brug " i stedet for '
Ellers bliver escape sekvenser ikke oversat.
Avatar billede kongfjong Nybegynder
04. februar 2009 - 18:24 #2
Dog, tanketorsk... Tak for hjælpen ;)
Avatar billede hmortensen Nybegynder
05. februar 2009 - 00:08 #3
Det var så lidt :)
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