PHP没有解析wordpress rss feed

时间:2013-01-17 23:27:02

标签: php wordpress rss

我在这里已经阅读了关于这个主题的十几个帖子,所有这些帖子都提到了我没有的空白问题,并且Feed验证者同意我的提要是可以的(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数据。如果我输入另一个Feed网址,它可以正常工作,如果我将我的RSS Feed添加到Google阅读器中,它就可以了。我希望有一些简单的东西让我失踪。有人可以帮忙吗?

感谢, 埃里克

更多信息:

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

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

埃里克

2 个答案:

答案 0 :(得分:3)

尝试更改

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

以下(注意额外/)

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

代码似乎随着这一变化而按预期运行。

答案 1 :(得分: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

希望这有助于某人!