SimpleXmlElement在超过一年的正常工作后抛出异常

时间:2016-05-08 08:13:34

标签: php rss simplexml

几年前,我为SSS转换器创建了一个简单的RSS(因此我可以将我的RSS提要转换为Second Life的LSL可以处理的格式)。 它已经工作了一年多,直到几天前(确切地说是5月1日)。从那以后,它一直在抛出错误

  

致命错误:未捕获的异常'异常'有消息'字符串可以   不被解析为XML'在/ home / [用户名   隐藏] /public_html/API/rss2sss.php:4   堆栈跟踪:#0 / home / [用户名   隐藏] /public_html/API/rss2sss.php(4):   SimpleXMLElement-> __ construct('')#home {main}抛出/ home / [用户名   第4行隐藏] /public_html/API/rss2sss.php

rss2sss.php 中的代码:

<?php
$feedUrl = $_GET['rss'];
$rawFeed = file_get_contents($feedUrl);
$xml = new SimpleXmlElement($rawFeed); /*This is where the exception happens*/


$channel['title'] = $xml->channel->title;
$channel['link']  = $xml->channel->link;

echo '<sss>';

foreach ($xml->channel->item as $item)
{    

    $article = array();
    $article['title'] = $item->title;
    $article['link'] = $item->link;

    echo '
    <pre>
        <title>';
    echo $article['title'] .'</title>
        <link>';
    echo $article['link'];
    echo '</link>
    </pre>';
}

echo '
</sss>';
?>

我试图转换的RSS在几年内没有改变格式,取自this feed

任何有助于找出代码突然破坏的原因的人都会非常感激,因为它会极大地影响网站的访问率。

1 个答案:

答案 0 :(得分:0)

我仍然不确定发生了什么或出了什么问题,但问题不在于PHP,而在于我试图提取的RSS提要。

经过大量缓存清除和摆弄设置(没有格式化,只有多少项应该在Feed中可见),它突然开始按预期工作了。我推断,导致问题的是用于Wordpress的插件W3Cache。在工作了这么长时间之后,不知道它为什么现在开始,但是禁用该插件(在最后一次清除所有缓存之后(重要的一步))修复了这个问题。

但是,不知道XML的格式究竟出了什么问题,在旧的feed和新的feed之间进行了文本比较,唯一的区别是来自最新更新的时间码,没有任何内容格式化。