您的位置:首页 > 编程语言 > PHP开发

PHP中使用file_get_contents()抓取网页乱码的问题

2013-09-12 20:49 741 查看
如果是编码问题导致的很容易,把抓取到的内容转换一下编码就可以了$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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: