【问题标题】:Unable to fetch and display a feed from my blog无法从我的博客中获取和显示提要
【发布时间】:2013-09-25 08:38:49
【问题描述】:

我正在尝试从我的博客中获取 rss 提要并在我的网站中显示最近的 5 篇文章,我正在使用的 php 代码如下所示

<?php

$rss = new DOMDocument();
$rss->load('http://blog.techbreeze.in/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 = 5;
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>';
}
?> 

问题是,当我在运行 WAMP 的本地服务器上测试代码时,它工作得很好,但是当我将它上传到基于 linux 并运行 Centos 的生产服务器并对其进行测试时,我遇到了奇怪的错误我不明白为什么。 我得到的错误是

警告:DOMDocument::load() [domdocument.load]: 文档为空 http://blog.techbreeze.in/feed/,行:1 英寸 /home//*/blog.php 第 4 行

警告:DOMDocument::load() [domdocument.load]: 需要开始标签, 'http://blog.techbreeze.in/feed/ 中找不到,第 1 行 /home//*/blog.php 第 4 行

请帮助我了解问题所在以及如何解决。

【问题讨论】:

  • 如果您访问此 URL blog.techbreeze.in/feed,您将看到您的提要重定向到 feedburner。这就是为什么您无法从该 URL 提取提要。
  • 我不得不将它重定向到 feedburner 以解决 DOM 错误,自从我将它重定向到 feedburner 并使用他们的 url 之后,事情就开始正常工作了。问题已解决,但我仍然想知道为什么会导致错误

标签: php xml wordpress rss


【解决方案1】:

请尝试使用以下网址: http://feeds.feedburner.com/techbreeze/itvO

错误是因为您的提要被重定向到 feedburner 网址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    相关资源
    最近更新 更多