【发布时间】: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(' & ', ' & ', $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 之后,事情就开始正常工作了。问题已解决,但我仍然想知道为什么会导致错误