ホームページ  >  記事  >  类库下载  >  PHP fwrite で改行を書くときに改行文字が機能しない理由

PHP fwrite で改行を書くときに改行文字が機能しない理由

高洛峰
高洛峰オリジナル
2016-10-20 14:45:051618ブラウズ

fwrite を使用してファイルを書き込むとき、初心者は解決しなければならない最も一般的な問題の 1 つ、つまり改行の書き込みに遭遇するでしょう。

PHP の改行文字: n と復帰文字: r は、改行が必要な場合、通常「rn」の組み合わせが使用されることは誰もが知っています。しかし、fwrite を使用してファイルを書き込むときに n 改行文字が機能しないのはなぜでしょうか?まず次の例を見てみましょう:

<?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);
?>

$wordの文字列に復帰と改行文字「rn」が追加されていますが、出力結果は期待どおりではありません。フィード文字「rn」は改行文字として解析されず、文字として直接出力されます。

なぜこのようなことが起こるのでしょうか? 調査の結果、一重引用符と二重引用符が問題の原因であることがわかりました。$word 定義文字列の一重引用符「'」を二重引用符「"」に置き換えるだけです。次のように記述します:

$filename = &#39;file.txt&#39;;
$word = "你好!\r\n欢迎来到www.webkaka.com";
$fh = fopen($filename, "a"); //w从开头写入 a追加写入
echo fwrite($fh, $word);
fclose($fh);

上記の例では、echo fwrite() は文字列の長さを表す数値を表示します

知識の拡張

二重引用符 (") を使用します。 string を定義するために、PHP は特殊文字のエスケープ シーケンスをより多く理解します:

転送シーケンスの説明

n改行

rキャリッジリターン

t水平タブ文字

[/td>バックスラッシュ

$ドル記号

" 二重引用符

[0-7]{1,3} この正規表現シーケンスは 8 進数表記で表される文字と一致します

x[0-9A-Fa-f]{1,2} この正規表現シーケンスは 16 進数表記で表される文字と一致します


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る