[心得] 讀檔後處理換行字元

看板PHP作者 (微笑的貓)時間14年前 (2011/09/27 15:33), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串1/2 (看更多)
原本目的:從檔案讀取字串,並在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

09/27 18:31, , 1F
str_replace("\n", '\\n', $contents)
09/27 18:31, 1F

09/27 22:44, , 2F
alert(<?php json_encode($outputString); ?>)
09/27 22:44, 2F

09/28 09:34, , 3F
你要不要直接改用 file("fileName") 讀檔 比較快
09/28 09:34, 3F

09/28 12:01, , 4F
那 file_get_contents ... ... 不更快
09/28 12:01, 4F

09/28 12:02, , 5F
preg_replace('/[\r\n]+/', '', $str). 收工
09/28 12:02, 5F
文章代碼(AID): #1EWNmmfz (PHP)
文章代碼(AID): #1EWNmmfz (PHP)