Heim  >  Artikel  >  类库下载  >  Warum das Newline-Zeichen beim Schreiben von Newline in PHP fwrite nicht funktioniert

Warum das Newline-Zeichen beim Schreiben von Newline in PHP fwrite nicht funktioniert

高洛峰
高洛峰Original
2016-10-20 14:45:051618Durchsuche

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 = &#39;file.txt&#39;;
 $word = &#39;你好!\r\n欢迎来到www.webkaka.com&#39;;
 $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 = &#39;file.txt&#39;;
$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


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

In Verbindung stehende Artikel

Mehr sehen