Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich nachgestellte Zeilenumbrüche, wenn ich in PHP in eine Datei schreibe?
Zeilenvorschubprobleme in PHP: Überwindung des nachgestellten Zeilenumbruchs
Beim Schreiben in eine Datei in PHP mit fwrite() im „w“-Modus , kommt es häufig vor, dass unerwartete Zeilenumbrüche an die Ausgabe angehängt werden. Dies war im bereitgestellten Code der Fall, wo „n“ dazu gedacht war, Zeilenumbrüche zu erzeugen, stattdessen aber als Zeichenfolge erschien.
Das n-Dilemma
Der Grund dafür Dieses eigenartige Verhalten ist auf die verwendete Escape-Sequenz zurückzuführen. Standardmäßig behandeln Zeichenfolgen in einfachen Anführungszeichen „n“ als wörtlichen Backslash gefolgt vom Buchstaben „n“ und nicht als Zeilenumbruchzeichen. Um dies zu beheben, ist es notwendig, Zeichenfolgen in doppelte Anführungszeichen zu verwenden und das Zeilenumbruchzeichen ordnungsgemäß mit „n“ zu maskieren.
Windows- und Unix-Zeilenenden
Ein weiterer zu berücksichtigender Aspekt ist das Zeilenendzeichen. Verschiedene Betriebssysteme verwenden unterschiedliche Konventionen für Zeilenenden:
Um eine ordnungsgemäße Behandlung des Zeilenendes zu gewährleisten, wird empfohlen, die Datei im Binärmodus zu öffnen, der das Schreiben von Rohdaten ohne Zeilenende ermöglicht Konvertierung. Dazu gehört die Verwendung von „wb“ als zweiter Parameter für fopen().
Aktualisierter Code:
Durch die Implementierung dieser Korrekturen schreibt der unten stehende geänderte Code erfolgreich jede Gem-ID in einer neuen Zeile ohne überflüssige Zeichen:
$i = 0; $file = fopen('ids.txt', 'wb'); foreach ($gemList as $gem) { fwrite($file, $gem->getAttribute('id') . "\n"); $gemIDs[$i] = $gem->getAttribute('id'); $i++; } fclose($file);
Das obige ist der detaillierte Inhalt vonWarum erhalte ich nachgestellte Zeilenumbrüche, wenn ich in PHP in eine Datei schreibe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!