我有一个课程,用于在我网站的几个不同页面上提取不同的RSS源。
我的问题是当其中一个Feed出现问题时(例如暂时停止播放),它会给我致命的php错误,因此会破坏我的网站。
$rawFeed = @file_get_contents("http://www.website.com/feed");
$xml = new SimpleXmlElement($rawFeed);
这是我用来提取RSS源的基本代码。 new SimpleXmlElement
最终会给出致命错误。
答案 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
}