2011-04-28 23 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

相关问题