我使用了SimplePie与PHP 5.3(启用GC)来分析我的RSS源。 这种运作良好,并没有做类似下面的问题时:
$simplePie = new SimplePie();
$simplePie->set_feed_url($rssURL);
$simplePie->enable_cache(false);
$simplePie->set_max_checked_feeds(10);
$simplePie->set_item_limit(0);
$simplePie->init();
$simplePie->handle_content_type();
foreach ($simplePie->get_items() as $key => $item) {
$item->get_date("Y-m-d H:i:s");
$item->get_id();
$item->get_title();
$item->get_content();
$item->get_description();
$item->get_category();
}
内存调试超过100次迭代(使用不同的 RSS源):
但是,当使用$item->get_permalink()
我的记忆调试看起来像这样超过100次迭代(使用不同的 RSS源)。
代码产生的问题 :
foreach ($simplePie->get_items() as $key => $item) {
$item->get_date("Y-m-d H:i:s");
$item->get_id();
$item->get_title();
$item->get_permalink(); //This creates a memory leak
$item->get_content();
$item->get_description();
$item->get_category();
}
事情我已经尝试 :
- 使用
get_link
代替get_permalink
- 使用
__destroy
提到这里 (即使它应该是固定的5.3)
当前的调试过程 :
我似乎已经查明问题到SimplePie_Item::get_permalink
- > SimplePie_Item::get_link
- > SimplePie_Item::get_links
- > SimplePie_Item::sanitize
- > SimplePie::sanitize
- > SimplePie_Sanitize::sanitize
- > SimplePie_Registry::call
- > SimplePie_IRI::absolutize
截至目前。
我能做些什么来解决这个问题?