fwrite を使用してファイルを書き込むとき、初心者は解決しなければならない最も一般的な問題の 1 つ、つまり改行の書き込みに遭遇するでしょう。
PHP の改行文字: n と復帰文字: r は、改行が必要な場合、通常「rn」の組み合わせが使用されることは誰もが知っています。しかし、fwrite を使用してファイルを書き込むときに n 改行文字が機能しないのはなぜでしょうか?まず次の例を見てみましょう:
<?php $filename = 'file.txt'; $word = '你好!\r\n欢迎来到www.webkaka.com'; $fh = fopen($filename, "a"); //w从开头写入 a追加写入 echo fwrite($fh, $word); fclose($fh); ?>
$wordの文字列に復帰と改行文字「rn」が追加されていますが、出力結果は期待どおりではありません。フィード文字「rn」は改行文字として解析されず、文字として直接出力されます。
なぜこのようなことが起こるのでしょうか? 調査の結果、一重引用符と二重引用符が問題の原因であることがわかりました。$word 定義文字列の一重引用符「'」を二重引用符「"」に置き換えるだけです。次のように記述します:
$filename = 'file.txt'; $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 進数表記で表される文字と一致します