Problem mit Zeilenumbruch beim schreiben in eine .txt Datei

  • Zuerst mein code:

    PHP
    $message = "Fehler: ".mysql_error()." ".date('d.m.Y')." - ".date('H:i:s')." \n";
    file_put_contents( "MySQLDebug.log" , $message, FILE_APPEND);

    Wenn ich die .log Datei im Chrome(Browser) öffne, sieht alles aus wie es soll. Alles schön in Zeilen.
    Wenn ich die Datei aber im Texteditor öffne steht alles in einer Zeile. Wo ist mein Fehler?
    "\n" ist doch verantwortlich für Zeilenumbrüche?

    Vielen Dank im voraus

    Einmal editiert, zuletzt von unkown-6363 (24. September 2012 um 21:32)

  • also Kollege :D

    ein " \n" als Zeilenumbruch wird meines Wissens nach nur beim E-Mail-Versand oder echo ausgaben verwendet (vllt. auch noch bei anderen Sachen)
    wenn du das in eine LOG-Datei schreibst, ist das genau das selbe, als wenn du den Windows Editor öffnest und n " \n" in ne Textdatei schreibst
    da bleibt dann das " \n" eben so

    außerdem kommt es auch darauf an, mit was du es ausgibst
    ein Browser ist nicht dafür ausgelegt ein " \n" als zeilenumbruch darzustellen, wenn ich jetz ein kleines Programm schreibe, was das machst, dann geht es, aber du willst es ja im Browser ausgeben lassen
    da hätte ich 2 einfache Lösungen für dich:

    • du schreibst das ganze in ne HTML-Datei und verwendest eben "<br>"
    • du schreibst den HTML-Code in die Datenbank und lässt den in einer PHP-Datei ausführen (EDIT: umlaute bitte beachten :thumbup: )

    (mir persönlich gefällt 2. besser. ich arbeite eben gerne mit Datenbanken ^^)

  • In der .log Datei stehen keine "\n". Es ist wie als währen die garnicht da. Wohingegen wenn ich die .log im Browser öffne die Zeilenumbrüche funktionieren.
    Inwiefern ist es eine Lösung für mein Problem?
    Soll ich von etwas mich distanzieren nur weil es nicht sofort klappt?
    (Ich lehne deine zwei Varianten ab.....)

  • sry, war nich ganz aufmerksam beim lesen :D

    also
    mit welchen Texteditor öffnest du denn den ganzen Spaß???

  • omg, aba egal ^^

    öffnes ma mit nen HTML-Editor
    notepad.exe unterstützt nich so wirklich zweilenumbrüche (jedenfalls nicht die, die php generiert, sondern nur CR+LF (müsste so heißen, bin mir aba nich ganz sicher))

  • das war eines der ersten sachen die ich in den php videos gesehen hab:

    PHP
    $message = "Fehler: ".mysql_error()." ".date('d.m.Y')." - ".date('H:i:s');
    $message .= "\r\n"; // weiss den grund bis heute nicht, aber muss wohl "extra" andgehängt werden
    file_put_contents( "MySQLDebug.log" , $message, FILE_APPEND);
  • oh, ich glaub mit dem anhängen war was anderes ... anyway.

    >>> funktioniert: ....".date('H:i:s')." \r\n";

    r war doch für windows und n for linux, wenn ich mich richtig erinnere

  • kann schon sein
    ich verwende das eh (fast) nie, also kanns sein, dass mein wissen darüber etwas verstaubt is :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!