作者smilecat13 (微笑的貓)
看板PHP
標題[心得] 讀檔後處理換行字元
時間Tue Sep 27 15:33:02 2011
原本目的:從檔案讀取字串,並在alert視窗中顯示。
//
code:
$fp = fopen("fileName","r");
$content = "";
if($fp){
while(!feof($fp))
$content = $content.fgets($fp);
}
$outputString = str_replace("\r\n",'\n',$contents);
echo '<script language="JavaScript">';
echo ' alert("'.$outputString.'");';
echo '</script>';
//
假設讀檔的內容是
123 a
456 b
要用alert來顯示讀取檔案的內容,
就不能直接echo alert("$content"),
編譯後會跑出 alert("123 a
456 b")
就無法正常使用alert()的功能。
後來發現可以用str_replace()函式來取代換行字元,
不過還是失敗,一樣echo出 alert("123 a
456 b")
最後才想到enter鍵是同時送出歸位與換行的字元,
所以被替換的字元必須是"\r\n",
而不是只有"\n"而已。
似乎也可以用
$outputString = explode("\r\n",$content);
$outputString = implode('\n',$outputString);
來達成相同目的,不過str_replace()感覺比較簡潔。
似乎是無用小感想...
一開始就卡在忘記enter鍵送出的字元,
應該是兩個、而非一個。
目前只想到這種方法,
不曉得有沒有更簡單的方法~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.169.169.137
1F:→ tyf99:str_replace("\n", '\\n', $contents) 09/27 18:31
2F:推 B9: alert(<?php json_encode($outputString); ?>) 09/27 22:44
3F:→ hSATAC:你要不要直接改用 file("fileName") 讀檔 比較快 09/28 09:34
4F:→ mervynW:那 file_get_contents ... ... 不更快 09/28 12:01
5F:→ mervynW:preg_replace('/[\r\n]+/', '', $str). 收工 09/28 12:02