天天看點

php 寫入txt換行_PHP fwrite換行寫入時換行符不起作用的原因

我們在使用fwrite寫入檔案時,新手會遇到一個最常見但又必須解決的問題,那就是換行寫入。

php的換行符我們都知道:\n ,回車符:\r,在需要換行時,通常是用“\r\n”這個組合。但是為什麼我們在使用fwrite寫入檔案時\n換行符不起作用呢。我們先看下面這個例子:

$filename = 'file.txt';

$word = '你好!\r\n歡迎來到www.webkaka.com';

$fh = fopen($filename, "a"); //w從開頭寫入 a追加寫入

echo fwrite($fh, $word);

fclose($fh);

?>

$word的字元串内加上了回車換行符“\r\n”,但是輸出結果并不是預期,這個回車換行符“\r\n”并沒有被解析為換行符,而是直接被當作一個字元輸出來了。

為什麼會出現這樣的情況呢?經研究,原來是單雙引号惹的禍!我們把$word定義字元串的單引号“'”換為雙引号“"”就可以了。正确的寫法如下:

$filename = 'file.txt';

$word = "你好!\r\n歡迎來到www.webkaka.com";

$fh = fopen($filename, "a"); //w從開頭寫入 a追加寫入

echo fwrite($fh, $word);

fclose($fh);

?>

題外話,上述例子裡echo fwrite()顯示的一個數字,這個數字表示字元串的長度。

知識擴充

用雙引号(")定義字元串,PHP 懂得更多特殊字元的轉義序列:轉移序列 說明

\n 換行

\r 回車

\t 水準制表符

\[/td> 反斜線

\$ 美元符号

\" 雙引号

\[0-7]{1,3} 此正規表達式序列比對一個用八進制符号表示的字元

\x[0-9A-Fa-f]{1,2} 此正規表達式序列比對一個用十六進制符号表示的字元

您可能對如下文章也感興趣