SimpleXmlElement 在正常工作一年多后抛出异常
SimpleXmlElement throws exception, after having worked fine for over a year
几年前,我制作了一个简单的 RSS 到 SSS 转换器(这样我就可以将我的 RSS 提要转换为 Second Life 的 LSL 可以处理的格式)。
一年多来一直运行良好,直到几天前(准确地说是 5 月 1 日)。从那以后,它一直在抛出 error.
Fatal error: Uncaught exception 'Exception' with message 'String could
not be parsed as XML' in /home/[username
hidden]/public_html/API/rss2sss.php:4
Stack trace: #0 /home/[username
hidden]/public_html/API/rss2sss.php(4):
SimpleXMLElement->__construct('') #1 {main} thrown in /home/[username
hidden]/public_html/API/rss2sss.php on line 4
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。
任何帮助找出代码突然崩溃的原因都将不胜感激,因为它会显着影响网站的访问率。
我仍然不确定发生了什么或哪里出了问题,但问题不在于 PHP,而在于我试图提取的 RSS 提要。
经过大量的缓存清除和摆弄设置(没有格式化,只有多少项目应该在提要中可见)之后,它突然又开始按预期工作了。我推断是 Wordpress 的插件 W3Cache 导致了这个问题。不知道为什么现在开始,在工作了这么长时间之后,但禁用该插件(最后一次清除所有缓存后(重要步骤))解决了这个问题。
仍然不知道 XML 的格式到底出了什么问题,是否对旧提要和新提要进行了文本比较,唯一的区别是时间码来自最新更新,格式中没有任何内容。
几年前,我制作了一个简单的 RSS 到 SSS 转换器(这样我就可以将我的 RSS 提要转换为 Second Life 的 LSL 可以处理的格式)。 一年多来一直运行良好,直到几天前(准确地说是 5 月 1 日)。从那以后,它一直在抛出 error.
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/[username hidden]/public_html/API/rss2sss.php:4 Stack trace: #0 /home/[username hidden]/public_html/API/rss2sss.php(4): SimpleXMLElement->__construct('') #1 {main} thrown in /home/[username hidden]/public_html/API/rss2sss.php on line 4
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。
任何帮助找出代码突然崩溃的原因都将不胜感激,因为它会显着影响网站的访问率。
我仍然不确定发生了什么或哪里出了问题,但问题不在于 PHP,而在于我试图提取的 RSS 提要。
经过大量的缓存清除和摆弄设置(没有格式化,只有多少项目应该在提要中可见)之后,它突然又开始按预期工作了。我推断是 Wordpress 的插件 W3Cache 导致了这个问题。不知道为什么现在开始,在工作了这么长时间之后,但禁用该插件(最后一次清除所有缓存后(重要步骤))解决了这个问题。
仍然不知道 XML 的格式到底出了什么问题,是否对旧提要和新提要进行了文本比较,唯一的区别是时间码来自最新更新,格式中没有任何内容。