几年前,我为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。
任何有助于找出代码突然破坏的原因的人都会非常感激,因为它会极大地影响网站的访问率。
答案 0 :(得分:0)
我仍然不确定发生了什么或出了什么问题,但问题不在于PHP,而在于我试图提取的RSS提要。
经过大量缓存清除和摆弄设置(没有格式化,只有多少项应该在Feed中可见),它突然开始按预期工作了。我推断,导致问题的是用于Wordpress的插件W3Cache。在工作了这么长时间之后,不知道它为什么现在开始,但是禁用该插件(在最后一次清除所有缓存之后(重要的一步))修复了这个问题。
但是,不知道XML的格式究竟出了什么问题,在旧的feed和新的feed之间进行了文本比较,唯一的区别是来自最新更新的时间码,没有任何内容格式化。