作者Joe8 (Beautiful Stranger)
看板PHP
標題[請益] out of memory
時間Wed Oct 14 21:30:08 2009
想請教一下我在執行程式的時候發生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