SimpleXmlElement在正常工作了一年多之后抛出异常


SimpleXmlElement throws exception, after having worked fine for over a year

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

致命错误:未捕获异常"exception",消息为"String can"在/home/[username中未解析为XMLhidden]/public_html/API/rs2sss.php:4堆栈跟踪:#0/home/[用户名hidden]/public_html/API/rs2sss.php(4):SimpleXMLElement->__construct('')#1{main}在/home/[用户名中抛出第4行上的hidden]/public_html/neneneba API/rss2ss.php

rss2s.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已经好几年没有改变格式了,它取自这个提要。

如果能帮助我们找出代码突然崩溃的原因,我们将不胜感激,因为它会显著影响网站的访问率。

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

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

不过,我不知道XML的格式到底出了什么问题,在旧的提要和新的提要之间进行了文本比较,唯一的区别是最新更新的时间代码,格式中没有任何内容。