0

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

我的问题是当其中一个提要出现问题时(例如提要暂时关闭),它会给我带来致命的 php 错误,从而破坏我的网站。

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

这是我用来拉取 rss 提要的基本代码。这new SimpleXmlElement是最终导致致命错误的原因。

4

2 回答 2

1

file_get_contents如果这是您唯一关心的问题,则返回错误。

你可以尝试做这样的事情:

$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 引发解析异常的情况添加处理。

于 2012-07-15T17:51:14.660 回答
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 回答