看板 PHP 關於我們 聯絡資訊
原本目的:從檔案讀取字串,並在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
tyf99:str_replace("\n", '\\n', $contents) 09/27 18:31
B9: alert(<?php json_encode($outputString); ?>) 09/27 22:44
hSATAC:你要不要直接改用 file("fileName") 讀檔 比較快 09/28 09:34
mervynW:那 file_get_contents ... ... 不更快 09/28 12:01
mervynW:preg_replace('/[\r\n]+/', '', $str). 收工 09/28 12:02