4

提供したフィードの 1 つが利用できないか無効であることが判明した場合 (フィード プロバイダー側​​のサーバーの問題により)、SimplePie が適切に失敗するようにしようとしています。

私が持っているコードはこれです:

$this->feed= new SimplePie();
// Set which feed to process.
$this->feed->set_feed_url('http://my_feed_goes_here'); // Bogus
$this->feed->handle_content_type();

// Run SimplePie.
$this->feed->init();

問題は、feed_url が無効であることが判明した場合、ヒットするとすぐに次のエラーが発生することです。$this->feed->init();

Fatal error: Call to undefined method DOMElement::getLineNo() 

ドキュメントに目を通しましたが、検証については何もわかりません。エラー チェックに関するこのページ ( http://simplepie.org/wiki/reference/simplepie/error ) を見ましたが、実際には URL が完全に無効で読み込みに失敗した場合にのみ機能します。URL が 404 で返された場合、または有効なフィードではない何かが返された場合、$feed->error は空白になります。

SimplePie には、有効なフィードバックが得られたかどうかを確認できるメカニズムが組み込まれているのではないでしょうか。

4

2 に答える 2

2

SimplePie 1.3.1 では->init()、URL の読み取りまたは解析ができない場合は false を返すため、次のようにします。

if (! $feed->init()) {
    // log your error, "return false" or handle the failure some other way
}

の私の読書に基づいて、 simplepie\library\SimplePie.php例外は生成されないため、Try/Catch は機能しません。

于 2015-12-15T00:18:01.723 に答える