在PHP项目中利用file_get_contents对网页进行抓取时出现中文乱码如何解决

介绍

在PHP项目中利用file_get_contents对网页进行抓取时出现中文乱码如何解决?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

原因:可能是服务器开了GZIP压缩、下面是用firebug查看我的网站的头信息,GZIP是开了的,请求头信息原始头信息,代码如下:

代码如下:接受text/html, application/xhtml + xml应用程序/xml; q=0.9 */*; q=0.8
接受编码GZIP,缩小
接收语言应用,zh型;q=0.8, en - us; q=0.5, en; q=0.3
连接维生
饼干__utma=225240837.787252530.1317310581.1335406161.1335411401.1537;谷歌__utmz=225240837.1326850415.887.3.utmcsr=| utmccn=(有机)| utmcmd=有机| utmctr=% E4%BB % BB e9%a1%b9%e7 % 9 b % % E4%BD % 95% AE bd % E4%B8 % % E9 % 83% 8 d % E4%BC % 9 a3%e4%b9 % % E9 % 82% 88% e7%ae % e5 % 80% 8 d % 95% 20 % 3 awww.nowamagic.net的网站;PHPSESSID=888 mj4425p8s0m7s0frre3ovc7;__utmc=225240837;__utmb=225240837.1.10.1335411401
主机www.jb51.net
user - agent Mozilla/5.0 (Windows NT 5.1;房车:Firefox 12.0)壁虎/20100101/12.0


可以从头信息中找到内容编码项是Gzip。

解决办法比较简单,就是用curl代替file_get_contents去获取,然后在卷发配置参数中加一条,代码如下:

代码如下:curl_setopt ($ ch CURLOPT_ENCODING“gzip");

今天用file_get_contents抓图片的时候,开始没发现这个问题,废了老大劲才找出来。

使用自带的zlib库,如果服务器已经装了zlib库,用下面的代码可以轻易解决乱码问题,代码如下:

代码如下:$ data=https://www.yisu.com/zixun/file_get_contents (“compress.zlib://薄? url);

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

在PHP项目中利用file_get_contents对网页进行抓取时出现中文乱码如何解决