[請益] PHP讀取.txt檔的速度

看板PHP作者 (累斃了)時間14年前 (2011/03/03 16:48), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/2 (看更多)
最近在用PHP寫讀檔的東西,覺得讀取檔案內容的速度非常的慢 檔案的內容例子如下: . . . 一下 2 一下這 3 一下這一 4 一下這一疊 3 . . . 這樣的內容大約有1萬行,大小183K 但是讀取的時間卻花了約44秒左右,有時候甚至會7X秒,讓我感到不可思議 讀檔的code如下: $Handle = fopen($FileLocation,"r+"); while(!feof($Handle)){ $FileContent[] = fgets($Handle); $FileContent = str_replace("\xef\xbb\xbf","",$FileContent);//BOM清除 //讀出重複次數(0-9999) preg_match("/\d\d\d\d|\d\d\d|\d\d|\d/",$FileContent[$i],$Match); $Multiplicity[] = $Match[0]; //讀出次數END //取出中文字 $FileContent[$i] = str_replace(" ",".",$FileContent[$i]); $Mode1 = "/[.]/";//以.分段 $Content = preg_split($Mode1,$FileContent[$i],-1); $FileContent[$i] = $Content[0]; //取出中文字END $i++; } fclose($Handle); 會不會是在preg_match占用太多時間嗎? 還是有其他方法能夠增加讀檔案的速度... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.13.127.146

03/03 16:48, , 1F
丟ramfs吧
03/03 16:48, 1F

03/03 16:52, , 2F
考不考慮用 $FileContent = file_get_contents($File)
03/03 16:52, 2F

03/03 16:53, , 3F
一次全部讀出來再處理啊 反正你還是用了那麼多的記憶體
03/03 16:53, 3F

03/03 16:58, , 4F
我原本設計是讀一行判斷一行,如果用一次讀完的話可能又
03/03 16:58, 4F

03/03 16:58, , 5F
要改判斷的程式碼
03/03 16:58, 5F

03/03 17:02, , 6F
改啊有什麼好怕的,反正你都嫌慢了
03/03 17:02, 6F

03/03 17:12, , 7F
OK我試試看...
03/03 17:12, 7F
文章代碼(AID): #1DRrN6La (PHP)
討論串 (同標題文章)
文章代碼(AID): #1DRrN6La (PHP)