Rumah  >  Artikel  >  pembangunan bahagian belakang  >  请教一个奇怪的 Feed 源解析的问题。

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

WBOY
WBOYasal
2016-06-06 20:46:54963semak imbas

在项目需求中有关于订阅源解析的任务,遇到这样一个比较奇怪的 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 的首部信息中没有给出相应的信息。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn