我现在已经使用SimplePie大约4年了,现在已经使用了Curl ......并且它在2-6-17之前一直很好用。
在过去的12个多小时里,我一直试图缩小为什么它不会解析任何craigslists列表供稿。我尝试过可能的场景。我确实获得了带有数据的200返回,但它包含错误。
是无效的XML,可能是由于字符无效。 XML错误:第1行第1列的格式不正确(令牌无效)
这是奇怪的事情,它与fopensocket一起使用没有问题。
这里有一些我的设置:
Ubuntu 14.04
的Apache / Ngnix
PHP 5.6
主持人:VPS DigitalOcean
SimplePie v-1.4.3
$ rss = new SimplePie();
$ rss-> set_feed_url(' http://detroit.craigslist.org/search/apa?availabilityMode=0&bedrooms=3&format=rss&min_price=800&#39);
$ rss-&gt; useragent =&#39; Mozilla / 5.0(Windows; U; Windows NT 5.1; en-US; rv:1.8.1.7)Gecko / 20070914 Firefox / 2.1.0.7&#39;; < / p>
$ rss-&gt; get_item_quantity(10);
$ rss-&GT; force_feed(真);
$ rss-&GT; force_fsockopen(假);
$ rss-&GT; set_input_encoding(&#39; UTF-8&#39);
$ rss-&GT; set_output_encoding(&#39; UTF-8&#39);
$ rss-&GT;的init();
$ rss-&GT; handle_content_type();
这里是标题的返回:
HTTP / 1.1 200确定
Cache-Control:max-age = 900,public Last-Modified:Mon,13 Feb 2017 18:24:12 GMT Date:Mon,13 Feb 2017 18:24:12 GMT Content-Encoding:gzip Vary:Accept -Encoding Content-Length:5991 Content-Type:application / rss + xml; charset = utf-8 X-Frame-Options:SAMEORIGIN Server:Apache Expires:Mon,13 Feb 2017 18:39:12 GMT
我已经完成了RSS验证,但没有任何重大错误。
此外,在全新的服务器/相同设置上尝试了它并得到了相同的结果。
他们在演示网站上工作simplepie.org/demo...so我认为它与我的服务器设置有关。
任何帮助将不胜感激!
答案 0 :(得分:0)
我在FILE.php的第158行添加了这个
// cURL automatically handles Proxy rewrites, remove the "HTTP/1.0 200 Connection established" string
$this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1);
$this->headers = array_pop($this->headers);//$this->headers[0];//
if (false !== stripos($this->headers, "HTTP/1.0 200 Connection established\r\n\r\n")) { $this->headers = str_ireplace("HTTP/1.0 200 Connection established\r\n\r\n", '', $this->headers);}