作者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