以下PHP已经运行了几年:
<?php
$counter = 0;
$rss = new SimpleXMLElement('http://groups.google.com/group/boy-scout-troop-845/feed/rss_v2_0_msgs.xml', null, true);
?>
它现在产生的错误如下:
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ... parser error : Opening and ending tag mismatch: meta line 1 and head in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ..."></head in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ...
: parser error : Opening and ending tag mismatch: head line 1 and html in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ... in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ... parser error : Premature end of data in tag html line 1 in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: forum/feed/boy-scout-troop-845/msgs/rss_v2_0.xml</a>...</noscript></body></html> in /home/content/t/r/o/troo9757/html/index.php on line 119
Warning: SimpleXMLElement::__construct() [simplexmlelement.--construct]: ^ in /home/content/t/r/o/troo9757/html/index.php on line 119
Fatal error: Uncaught exception 'Exception' with message 'String could not be parsed as XML' in /home/content/t/r/o/troo9757/html/index.php:119 Stack trace: #0 /home/content/t/r/o/troo9757/html/index.php(119): SimpleXMLElement->__construct('... on line 119
请注意,我已将链接替换为"…",以便接受此链接。我已经查看了返回的XML,它看起来很好。可能是时间太长了吗?这里有什么建议吗?
谢谢!
看起来谷歌已经改变了他们的RSS提要,将HTTP流量重定向到HTTPS。若您查看试图获取的XML文件的响应,它实际上会返回带有重定向标记的HTML。
只需直接调用https就可以绕过这个问题。
$rss = new SimpleXMLElement('https://groups.google.com/group/boy-scout-troop-845/feed/rss_v2_0_msgs.xml', null, true);