问题
I'm using Simple HTML Dom. I'm trying to run the following: (with WAMP)
$doc = file_get_html('http://www.scoop.it/t/curate-your-personal-learning-environment?page=3');
$comments = array();
$CommentList = $doc->find('#commentList div[class=commentContainer]');
if (count($CommentList) > 0)
var_dump($CommentList);
foreach ($CommentList as $comment)
{
$text = $comment->find('span[class^=author]');
$comments[] = $this::ctrim($text[0]->innertext);
}
If I comment out the foreach loop, it runs fine. Otherwise, the apache crashes.
One important note: If I comment out the inside of the foreach loop, it still crashes. I added the var dump to make sure that the array has valid items.
EDIT:
Apache logs:
[Tue Jul 10 16:53:53 2012] [notice] Parent: child process exited with status 255 -- Restarting.
[Tue Jul 10 16:53:53 2012] [notice] Apache/2.2.22 (Win64) PHP/5.3.13 configured -- resuming normal operations
[Tue Jul 10 16:53:53 2012] [notice] Server built: May 13 2012 19:41:17
[Tue Jul 10 16:53:53 2012] [notice] Parent: Created child process 5568
[Tue Jul 10 16:53:53 2012] [notice] Child 5568: Child process is running
[Tue Jul 10 16:53:53 2012] [notice] Child 5568: Acquired the start mutex.
[Tue Jul 10 16:53:53 2012] [notice] Child 5568: Starting 64 worker threads.
[Tue Jul 10 16:53:53 2012] [notice] Child 5568: Starting thread to listen on port 80.
[Tue Jul 10 16:53:53 2012] [notice] Child 5568: Starting thread to listen on port 80.
回答1:
this might be a memory leak:
since your apache says:
child process exited with status 255
see here:
PHP Out of Memory - Crashes Apache?
Due to php5 circular references memory leak, after creating DOM object, you must call $dom->clear() to free memory if call file_get_dom() more then once.
from here: http://simplehtmldom.sourceforge.net/manual_faq.htm#memory_leak
回答2:
Try to change
$this::ctrim($text[0]->innertext);
to
self::ctrim($text[0]->innertext);
or
$this->ctrim($text[0]->innertext);
$obj->method
is an instance call.
Class::method
is an static call.
$this::method
does probably something weird...
来源:https://stackoverflow.com/questions/11413392/php-simple-html-dom-apache-crashes