php file_get_contents 为何读取文本部分乱码,PHP中使用file_get_contents()抓取网页乱码的问题...

如果是编码问题导致的很容易,把抓取到的内容转换一下编码就可以了$content=iconv("GBK","UTF-8",$content),这里我们主要讨论如何抓取开了gzip的页面,如何判断页面开了gzip呢,获取的header头中含有Content-Encoding:gzip;说明页面内容是经过gzip压缩过的,可以通过firebug查看页面是否开启了gzip压缩。

下面介绍一些解决方案:

1、使用PHP自带的zlib库,用下面的代码可以解决:$data = file_get_contents("compress.zlib://".$url);

2、使用curl代替file_get_contents()函数:function curl_get($url, $gzip=false){

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);

if($gzip){

curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 关键在这里

}

$content = curl_exec($curl);

curl_close($curl);

return $content;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值