0

Webサイトのいくつかの異なるページでさまざまなRSSフィードを取得するために使用するクラスがあります。

私の問題は、フィードの1つに問題がある場合(フィードが一時的にダウンするなど)、致命的なphpエラーが発生し、サイトが破損することです。

$rawFeed = @file_get_contents("http://www.website.com/feed");
$xml = new SimpleXmlElement($rawFeed);

これは、RSSフィードをプルするために使用する基本的なコードです。これnew SimpleXmlElementが最終的に致命的なエラーをもたらすものです。

4

2 に答える 2

1
libxml_use_internal_errors(true); 
try
{
    $xml = new SimpleXmlElement('http://www.website.com/feed');
} catch(Exception $e) {
    //nothing
}
于 2012-07-15T17:52:57.680 に答える
1

file_get_contentsそれが唯一の懸念事項である場合、エラーに対してfalseを返します。

次のようなことを試してみてください。

$rawFeed = @file_get_contents("http://www.website.com/feed");

if ($rawFeed) {
    $xml = new SimpleXmlElement($rawFeed);
} else {
   // Deal with case that the feed wasn't read.
}

また、try / catchブロックでラップnew SimpleXmlElement($rawFeed)し、SimpleXmlElementが解析例外をスローする場合の処理​​を追加することもできます。

于 2012-07-15T17:51:14.660 に答える