Horst Reinelt: Zeilenumbruch: HTML-/File-Ausgabe

Hallo liebes Forum,

ich als PHP-Neuling habe folgendes Problem:

Ich möchte den Inhalt einer SQL-Abfrage als HTML zum Browser senden und gleichzeitig in ein Textfile schreiben. Das funktioniert alles auch hervorragend, bis auf die Tatsache, dass der Zeilenumbruch nur im HTML-Quellcode interpretiert wird; im Textfile jedoch nicht.

Hier noch ein Auszug aus dem Script:

$datei = fopen("log.txt","a");
while ($row = mysql_fetch_object($ergebnis)) {
echo "$row->bezeichnung<br>\n"; # Ausgabe an Client - Zeilenumbruch OK
fwrite($datei, "$row->bezeichnung\n\r"); # Ausgabe in File - Zeilenumbruch nicht OK
}
fclose($datei);

Die im Forum zu diesem Thema bereits geposteten Antworten beziehen sich meistens auf die Frage, welche Umbrüche in welcher Umgebung funktionieren (\n und/oder \r, z. B. http://forum.de.selfhtml.org/archiv/2004/10/t91691/).
Aber in meinem Fall wird im File der gesamte Inhalt ohne Umbruch geschrieben.

Weiß jemand, was ich falsch mache?

Danke und ciao
  Horst

  1. Hallo,

    Weiß jemand, was ich falsch mache?

    Hast es doch selbst verlinkt: http://forum.de.selfhtml.org/archiv/2004/10/t91691/#m551835

    Achte auf die Reihenfolge.

    Gruß,
    Michael

  2. Hi,

    poste mal ne URL, wo man das begutachten kann. Vom Code her sag ich mal, das muss funktionieren.

    Kann es sein, das du die Textdatei im Browser ansiehst? Da werden \n nicht angezeigt.

    1. Hallo Manuel,

      ich hatte das bisher nur lokal laufen (WinXP mit Apache 1.3.33 und PHP 4.3.10).

      Nachdem ich es jetzt auf die Schnelle auf ein Linux-Rechner hochgeladen habe, ging es tadellos (mit \n).

      Danach habe ichs mir nochmal angeschaut und entdeckt, dass doch glatt die Reihenfolge nicht
        fwrite($datei, "$row->bezeichnung\r\n");
      sondern
        fwrite($datei, "$row->bezeichnung\n\r");
      war :-)

      Danke und Gute Nacht
        Horst

      1. Danach habe ichs mir nochmal angeschaut und entdeckt, dass doch glatt die Reihenfolge nicht
          fwrite($datei, "$row->bezeichnung\r\n");
        sondern
          fwrite($datei, "$row->bezeichnung\n\r");
        war :-)

        Sagte ich doch vorhin. Seufz.