>  기사  >  백엔드 개발  >  请教一个奇怪的 Feed 源解析的问题。

请教一个奇怪的 Feed 源解析的问题。

WBOY
WBOY원래의
2016-06-06 20:46:54963검색

在项目需求中有关于订阅源解析的任务,遇到这样一个比较奇怪的 Feed 源:http://nshipster.com/feed.xml。

这个 feed 可以在浏览器中直接打开,也就是浏览器可以成功解析。但是一旦涉及到命令行的时候,就会出现各种乱码,无法成功解析。

抛开项目其他的细节,单单是抓取这个 feed 也会出现问题,在 PHP 环境中使用一下几种方法测试都没成功:

  • 直接使用 file_get_contents() 函数
  • 使用 curl 模拟浏览器抓取
  • 直接使用 DOMdocument 或者 simplexml 载入

在抓取的过程中尝试更改相关的编码以及增加 HTTP 文件类型和编码的头部信息输出也都是乱码。

唯一觉得特别的是这个源比其他的要大一些,大约 1.7M,会不会是因为这个原因?

回复内容:

在项目需求中有关于订阅源解析的任务,遇到这样一个比较奇怪的 Feed 源:http://nshipster.com/feed.xml。

这个 feed 可以在浏览器中直接打开,也就是浏览器可以成功解析。但是一旦涉及到命令行的时候,就会出现各种乱码,无法成功解析。

抛开项目其他的细节,单单是抓取这个 feed 也会出现问题,在 PHP 环境中使用一下几种方法测试都没成功:

  • 直接使用 file_get_contents() 函数
  • 使用 curl 模拟浏览器抓取
  • 直接使用 DOMdocument 或者 simplexml 载入

在抓取的过程中尝试更改相关的编码以及增加 HTTP 文件类型和编码的头部信息输出也都是乱码。

唯一觉得特别的是这个源比其他的要大一些,大约 1.7M,会不会是因为这个原因?

自问自答,经过测试,乱码的原因是因为该 feed 采用了 gzip 压缩,但是在 response 的首部信息中没有给出相应的信息。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.