看板 PHP 關於我們 聯絡資訊
想請教一下我在執行程式的時候發生out of memory, 我大概描述一下我的作法, 麻煩各位幫我建議ㄧ下 ^^" 目的: 1. 將n個小文件個別做處理 (產出n個small.txt) 2. 將1的處理結果集合成一份大文件 (只有1個 Big.txt) 程式: $fp_Big = fopen ("BigArticle.txt", "a+"); for loop n次{ //省略小文件的處理過程 $fp_Small = fopen ("small_{n}.txt", "w"); fputs($fp_Small , $input_string); //將字串寫入檔案 ,各自的小檔案 fclose($fp_Small); fputs($fp_Big , $input_string); //將字串寫入檔案, 集合的大文件 } fclose($fp_Big); 結果: 這樣的程式是可行的,至少在讀入的檔案數量不會太多的時候是ok 但如果太多就會發生以下錯誤訊息 Fatal error: Out of memory (allocated 30408704) (tried to allocate 9252474 bytes ) in C:\AppServ\php5\extract.php on line 82 發生錯誤的那行是執行fputs($fp_Big , $input_string); 請問我該怎麼解決呢,我改過php.ini裡面的memory size也沒用... Orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.184.124
arrack:有RESTART APACHE嗎? 10/14 21:48
Joe8:有 10/14 22:52
windincloud:你數量多的時候合起來的檔案大小為何? 10/15 21:35
windincloud:我以前有寫過大檔 也沒啥問題的說... 10/15 21:35
arrack:php.ini你改的是memory_limit嗎?改多大?PHPINFO出現有改變? 10/16 09:10
Joe8:我改128M 10/16 11:30