PHP,阅读RSS提要。我的代码运行良好,但不适用于所有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可以很好地阅读这些链接。
- 为什么
- SimplePie可以阅读这些链接。。而不是我
我希望我的代码在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 />';
}
}
}
大量的RSS提要实际上是无效的;SimplePie和其他解析器通常会不遗余力地处理这些糟糕的实现,这就是为什么使用这些库比编写自己的库更容易的原因。我们使用SimplePie,有很多提要非常糟糕,甚至SimplePie也会失败。
简而言之;除非你喜欢疼痛和/或有强烈的冲动想要写自己的书,否则使用另一个图书馆。正如您所注意到的,尝试将它们解析为纯XML会非常频繁地失败。