Wenn wir fwrite zum Schreiben von Dateien verwenden, werden Anfänger auf eines der häufigsten Probleme stoßen, das gelöst werden muss, und zwar auf das Schreiben von Zeilenumbrüchen.
Wir alle kennen das Zeilenumbruchzeichen von PHP: n und das Wagenrücklaufzeichen: r. Wenn ein Zeilenumbruch erforderlich ist, wird normalerweise die Kombination „rn“ verwendet. Aber warum funktioniert ein Zeilenumbruchzeichen nicht, wenn wir mit fwrite eine Datei schreiben? Schauen wir uns zunächst das folgende Beispiel an:
<?php $filename = 'file.txt'; $word = '你好!\r\n欢迎来到www.webkaka.com'; $fh = fopen($filename, "a"); //w从开头写入 a追加写入 echo fwrite($fh, $word); fclose($fh); ?>
Das Wagenrücklauf- und Zeilenvorschubzeichen „rn“ wird zur Zeichenfolge hinzugefügt von $word , aber das Ausgabeergebnis ist nicht wie erwartet. Das Wagenrücklauf- und Zeilenvorschubzeichen „rn“ wird nicht als Zeilenvorschubzeichen analysiert, sondern direkt als Zeichen ausgegeben.
Warum passiert das? Nach Recherchen stellt sich heraus, dass die einfachen und doppelten Anführungszeichen die Ursache sind. Wir ersetzen einfach das einfache Anführungszeichen „'“ in der $word-Definitionszeichenfolge „“! ". Die richtige Schreibweise lautet wie folgt:
$filename = 'file.txt'; $word = "你好!\r\n欢迎来到www.webkaka.com"; $fh = fopen($filename, "a"); //w从开头写入 a追加写入 echo fwrite($fh, $word); fclose($fh);
Off topic, echo fwrite () zeigt im obigen Beispiel eine Zahl, die die Länge der Zeichenfolge darstellt.
Wissenserweiterung
Verwenden Sie doppelte Anführungszeichen ("), um die Zeichenfolge zu definieren. PHP versteht mehr Escape-Sequenzen für Sonderzeichen :
Beschreibung der Übertragungssequenz
n Zeilenvorschub
r Wagenrücklauf
tHorizontaler Tab
[/td> Backslash
$-Dollar-Zeichen
"doppeltes Anführungszeichen
[0-7]{1,3} Diese reguläre Ausdruckssequenz entspricht einem in Oktalschreibweise dargestellten Zeichen
x [ 0-9A-Fa-f]{1,2} Diese reguläre Ausdruckssequenz entspricht einem in hexadezimaler Schreibweise dargestellten Zeichen