PHP Simple HTML DOM Parserという HTML をパースを行い jQuery のように簡単にスクレイピングすることができるライブラリがあるのですが、for などで繰り返しメソッドを使用すると大量にメモリを消費してしまい処理が中断してしまうことがありました。
その原因を調べたところ有名な現象のようですぐに解決策が見つかりました。下記のように $html
の使用が終わったら clear
メソッドの実行し、$html
も unset
することで for で繰り返してもメモリの大量消費が発生することはなくなりました。
1 2 3 4 5 |
$html = file_get_html(...); // do something... $html->clear(); unset($html); |
参考
http://simplehtmldom.sourceforge.net/manual_faq.htm
http://looxu.blogspot.com/2010/07/blog-post.html