【问题标题】:Fetching latest blog post on wordpress using php?使用 php 获取 wordpress 上的最新博客文章?
【发布时间】:2010-06-19 12:01:39
【问题描述】:

我已经使用这个 php 来获取我博客的最新帖子:

function read_rss($display=0,$url='') {
    $doc = new DOMDocument();
    $doc->load($url);
    $itemArr = array();

    foreach ($doc->getElementsByTagName('item') as $node) {
        if ($display == 0) {
            break;
        }

        $itemRSS = array (
            'title'       => $node->getElementsByTagName('title')->item(0)->nodeValue,
            'description' => $node->getElementsByTagName('description')->item(0)->nodeValue,
            'link'        => $node->getElementsByTagName('link')->item(0)->nodeValue,
        );

         array_push($itemArr, $itemRSS);

        $display--;
    }
    return $itemArr;
}

我从教程中学到了这一点,因为我不确定如何完成这项任务。但是它有效,但我的错误日志中不断打印此错误:

[12-Jun-2010 06:13:36] PHP Warning:  DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Document is empty in http://www.prettyklicks.com/blog/?feed=rss2, line: 1 in public_html/includes/functions.php on line 153
[12-Jun-2010 06:13:36] PHP Warning:  DOMDocument::load() [<a href='domdocument.load'>domdocument.load</a>]: Start tag expected, '&lt;' not found in http://www.prettyklicks.com/blog/?feed=rss2, line: 1 in public_html/includes/functions.php on line 153

有什么想法吗?

谢谢!

【问题讨论】:

  • public_html/portfolio.php on line 16public_html/includes/functions.php on line 79 有什么内容?
  • 对不起,实际上与错误无关,我已编辑!原来的问题

标签: php feed domdocument


【解决方案1】:

我遇到了同样的问题,这是解决方案:

换行:

$doc->加载($url);

$doc->loadXML(preg_replace("/>\s+

它的作用是将url加载到一个字符串中,去掉标签之间的所有空格,然后将其传递给DOMDocument对象进行加载。

为什么空格很重要?我不确定,但似乎 WordPress RSS 提要包含空格以使其缩进很好,但这会干扰 DOMDocument 的解析器并使其看起来像是缺少标签。

感谢http://netweblogic.com/php/domdocument-whitespace-php/ 在那里我找到了答案;他们针对不同的情况解决相同的问题。

奇怪的是(我不明白这一点),我的代码在我的开发服务器上没有解决方法,但在生产服务器上却没有。我不知道为什么,但它一定与 Apache/PHP/WordPress 的版本和配置有关。

无论如何,我希望这会有所帮助,现在还为时不晚!

保罗。

【讨论】:

  • 您的建议很中肯,只是您的代码需要稍作调整。您缺少 preg_replace 中的参数和模式中的分隔符。但谢谢你做得很好!
猜你喜欢
  • 2011-02-28
  • 1970-01-01
  • 1970-01-01
  • 2011-12-28
  • 2016-12-19
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多