0

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 />';
    }
}
}
4

1 回答 1

2

大量的 RSS 提要实际上是无效的;SimplePie 和其他解析器经常不遗余力地解决这些糟糕的实现,这就是为什么使用这些库比编写自己的库更容易的原因。我们使用 SimplePie,那里有很多非常糟糕的提要,甚至 SimplePie 都失败了。

简而言之; 除非您喜欢痛苦和/或有一些可怕的驾驶强迫症来编写自己的代码,否则请使用另一个库。正如您所注意到的,尝试将它们解析为纯 XML 会经常失败。

于 2011-05-24T00:53:19.470 回答