2012-04-26 4 views
2

私ははSimplePieこのRSSフィードを解析しようとしている:本当に大きなフィードを持つSimplePieのメモリリーク。これと戦う方法は?

http://www.merdekapost.com/feeds/posts/default

とフィードが巨大であるため、それはメモリリークを作成します。それは4Mbを超えており、SimplePieがXMLを解析しようとすると、使用可能なすべてのRAMが満杯になります。

問題は、すべてのRAMをXMLパーサーに渡すことなく、このような大きなフィードを解析する必要があることです。私はこのフィードの全ての項目を必要とせず、最新のニュースだけが必要なので、おそらくXMLの一部を解析する方法がありますか?このような大きなファイルを完全に解析しないようにSimplePieを編集(または設定)することはできますか?

私はset_item_limit()を試みましたが、解析されたXMLの量を制限しないと思います。

私はそれが一般的な問題だと信じていますが、私は答えを見つけることができません。アドバイスできますか?

答えて

2

xmlページのサイズによってメモリリークが発生した場合は、file_get_contents()またはcurlを使用してxmlの内容を取得し、不要な部分を自分で切り捨てることができます。その後、修正されたデータをSimplePieにset_raw_data()で渡してフィード項目を取得します。例はhereと書かれています。

関連する問題