SimplePie不解析RSS Feed

时间:2017-02-13 19:07:19

标签: php xml rss simplepie

我现在已经使用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我认为它与我的服务器设置有关。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

发现它!现在适用于较旧的代理 What to do with extra HTTP header from proxy?

我在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);}