在源碼中輸入換行但是不顯示像br 之類的字符我們需要通過(guò)php地轉(zhuǎn)義字符來(lái)實(shí)現(xiàn)了,下文就一起來(lái)看看吧。
知識(shí)擴(kuò)充
轉(zhuǎn)移序列說(shuō)明
n換行
r回車
t水平制表符
[/td>反斜線
$美元符號(hào)
"雙引號(hào)
[0-7]{1,3}此正則表達(dá)式序列匹配一個(gè)用八進(jìn)制符號(hào)表示的字符
x[0-9A-Fa-f]{1,2}此正則表達(dá)式序列匹配一個(gè)用十六進(jìn)制符號(hào)表示的字符
用雙引號(hào)(")定義字符串,PHP 懂得更多特殊字符的轉(zhuǎn)義序列:
PHP默認(rèn)頁(yè)面編碼為HTML,要使輸出的內(nèi)容換行,必須使用HTML的換行標(biāo)簽”<br>”或”<br />”
,當(dāng)使用PHP做http api時(shí),處理br標(biāo)簽稍顯麻煩,此時(shí)可以指定PHP頁(yè)面編碼,使”\n”成功解析為換行.
代碼如下復(fù)制代碼
<?php
header("Content-type:text/txt; charset=gb2312");
for ($i=0; $i < 100; $i++) {
echo "string";
echo "\n";
?>
用瀏覽器訪問(wèn),會(huì)直接顯示100行”string”.
也可以將頁(yè)面編碼聲明為
代碼如下復(fù)制代碼
header("Content-Type: plain/text; charset=gb2312");
此時(shí)用瀏覽器訪問(wèn),會(huì)自動(dòng)下載為文檔,用代碼下載沒(méi)有區(qū)別.
txt文件使用fwrite換行寫入時(shí)換行符不起作用
php的換行符我們都知道:\n ,回車符:\r,在需要換行時(shí),通常是用“\r\n”這個(gè)組合。但是為什么我們?cè)谑褂胒write寫入文件時(shí)\n換行符不起作用呢。我們先看下面這個(gè)例子:
代碼如下
<?php
$filename = 'file.txt';
$word = '你好?。躵\n歡迎來(lái)到www.111cn.net';
$fh = fopen($filename, "a"); //w從開(kāi)頭寫入 a追加寫入
echo fwrite($fh, $word);
fclose($fh);
?>
$word的字符串內(nèi)加上了回車換行符“\r\n”,但是輸出結(jié)果并不是預(yù)期,這個(gè)回車換行符“\r\n”并沒(méi)有被解析為換行符,而是直接被當(dāng)作一個(gè)字符輸出來(lái)了。
為什么會(huì)出現(xiàn)這樣的情況呢?經(jīng)研究,原來(lái)是單雙引號(hào)惹的禍!我們把$word定義字符串的單引號(hào)“'”換為雙引號(hào)“"”就可以了。正確的寫法如下:
代碼如下
<?php
$filename = 'file.txt';
$word = "你好?。躵\n歡迎來(lái)到www.111cn.net";
$fh = fopen($filename, "a"); //w從開(kāi)頭寫入 a追加寫入
echo fwrite($fh, $word);
fclose($fh);
?>
題外話,上述例子里echo fwrite()顯示的一個(gè)數(shù)字,這個(gè)數(shù)字表示字符串的長(zhǎng)度
更多信息請(qǐng)查看IT技術(shù)專欄