私はRSSフィードを解析するためにPHP5.3(gcが有効になっている)でSimplePieを使用しています。これは、次のようなことを行うときに問題なくうまく機能します。
$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
。
これを修正するにはどうすればよいですか?