PHP,阅读RSS Feed。我的代码工作正常但不适用于所有RSS链接,例如:
发布链接错误
http://stackoverflow.com/feeds/tag?tagnames=php&sort=newest
https://www.facebook.com/feeds/page.php?id=20669912712&format=rss20
错误消息
Parse error: syntax error, unexpected T_VARIABLE ...
Warning: DOMDocument::load() [domdocument.load]: Opening and ending tag mismatch ...
这些(上面)RSS链接是我发现的各种类型代码的问题 并且,人们说我这些链接不是“有效”的格式 但SimplePie可以很好地阅读这些链接。
我希望我的代码能够很好地处理所有Feed,例如SimplePie ..;(
...... ...
这是我正在使用的类的简短代码示例:
class RSSREADER {
private $xml;
private $items;
private $item;
public static function _ParseFeeds ($link)
{
$self->xml = @simplexml_load_file($link);
echo $self->xml->channel->title.'<br />';
echo $self->xml->channel->description.'<br /><br />';
$self->items = $self->xml->channel->item;
foreach ($self->items as $self->item) {
echo $self->item->title.'<br />';
echo $self->item->description.'<br />';
}
}
}
答案 0 :(得分:2)
大量的RSS源实际上是无效的; SimplePie和其他解析器经常竭尽全力解决这些可怕的实现,这就是为什么使用这些库比编写自己的库更容易。我们使用SimplePie,那里有很多非常糟糕的源,甚至SimplePie都失败了。
总之;除非你喜欢痛苦和/或有一些可怕的驾驶强迫自己编写,否则请使用另一个图书馆。正如您所注意到的那样,尝试将它们解析为纯XML将非常频繁地失败。