2011-04-28 26 views
0

任何人有修復Simple_DOM內存問題的運氣?我搜索了這些論壇,只發現了其他解析引擎的推薦。如何修復Simple_DOM內存限制致命錯誤?

我的腳本循環遍歷20,000個文件並從每個文件中提取一個單詞。我必須每次調用file_get_html函數。

  • 將其移動到不同的服務器。同樣的結果。
  • 將foreach循環更改爲while循環。
  • 增加內存限制,無論是服務器。將無法工作。

回答

0

是的,你可以增加內存ini_set()但這只是你有權這樣做。 我推薦當你完成任務時,你正在經歷你的循環,取消包含大量數據集的變量。

for($i=0;$i < 30000;$i++){ 
    $file = file_get_contents($some_path.$i); 
    // do something, like write to file 

    // unset the variables 
    unset($file); 
} 

當然,這只是一個例子,但可以將其與你的codeand確保每一個請求就像一個正在運行的文件的第一次。

祝你好運:)

0

我看來,像這種方法來處理一個單一的執行過程中的數據量是有缺陷的。根據我的經驗,所處理的PHP cli並不是真的意味着長時間運行並處理大量數據。這需要非常非常小心的內存管理。扔在泄漏的第三方劇本中,你有一個讓你的頭撞在桌子上的祕訣。

的可能,而不是試圖通過所有20K文件一次運行,你可以同時處理幾百,存儲結果某處中介,像一個MySQL數據庫,然後一旦所有的文件都已經被處理收集結果。

+0

是的,這是我最終做到這一點 - 另外,禁用圖像似乎有助於解析網址時。 – user723220 2011-04-28 06:50:03

相關問題