0

我已经在 SO 上阅读了关于这个主题的十几篇文章,所有这些文章都提到了我没有的空白问题,并且提要验证器同意我的提要没问题(http://feedvalidator.org/check.cgi ?url=http%3A%2F%2Fgearmunk.com%2Fblog%2Ffeed%2F)

我正在使用以下代码来解析 rss:

<?php
$rss = new DOMDocument();
$rss->load('http:/gearmunk.com/blog/feed/');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array ( 
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = 3;
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<p><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong><br />';
echo '<small><em>Posted on '.$date.'</em></small></p>';
echo '<p>'.$description.'</p>';
}
?>

但是如果你查看http://gearmunk.com/index3.php你会看到,在右边,它列出了 3 个错误的日期并且没有 rss 数据。如果我输入另一个提要 URL,它就可以正常工作,如果我将我的 rss 提要放入 Google 阅读器,它就可以正常工作。我希望我缺少一些愚蠢的简单东西。有人可以帮忙吗?

谢谢,埃里克

更多信息:

我开始专注于它是一个 wordpress 问题,所以我尝试了一些其他的 wordpress RSS 提要。来自 CNN 的一个工作正常(http://religion.blogs.cnn.com/feed/),但是来自 BoingBoing(也是一个 WP 网站)的一个不起作用:http ://boingboing.net/feed 。

我没有收到通常与空白问题相关的 XML Parse 错误,所以我不认为是这样。

埃里克

4

2 回答 2

3

尝试改变

$rss->load('http:/gearmunk.com/blog/feed/');

到以下(注意额外的 / )

$rss->load('http://gearmunk.com/blog/feed/');

通过该更改,代码似乎按预期运行。

于 2013-01-18T21:01:30.757 回答
0

我知道这是一个老问题,但我在尝试解决我自己的 WordPress RSS 提要问题时遇到了它。就我而言,我错过了 PHP XML 扩展。

所以我跑了 apt-get install php7.0-xml(我在 Ubuntu 上运行 PHP v7.0,检查你的 php 版本),重新启动了我的服务器,它完全解决了我的问题!

对于 PHP 7 上的 CentOS / Fedora / Red Hat:

yum install php70w-xml

希望这对某人有帮助!

于 2017-02-24T15:43:46.203 回答