如果rss提供不起作用,防止PHP错误?

时间:2012-07-15 17:45:57

标签: php rss

我有一个课程,用于在我网站的几个不同页面上提取不同的RSS源。

我的问题是当其中一个Feed出现问题时(例如暂时停止播放),它会给我致命的php错误,因此会破坏我的网站。

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

这是我用来提取RSS源的基本代码。 new SimpleXmlElement最终会给出致命错误。

2 个答案:

答案 0 :(得分: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.
}

您可能还希望将new SimpleXmlElement($rawFeed)包装在try / catch块中,并为SimpleXmlElement抛出解析异常的情况添加处理。

答案 1 :(得分:1)

libxml_use_internal_errors(true); 
try
{
    $xml = new SimpleXmlElement('http://www.website.com/feed');
} catch(Exception $e) {
    //nothing
}