折雨的天空
snoopy获取页面内容遇到gzip的情况
2013-5-15 我好笨

毫无疑问,直接获取results是乱码,后面的什么正则匹配啊,什么的都是徒劳。


花了不少时间去研究,当然修改snoopy底层我是不会的,技术不好,找了其他替代的方法,比如csdn上有篇帖子说的http_client,但是没有解决问题,后来搜到一篇文章,他是用file_get_content获取页面乱码,同样是gzip压缩的问题


方法一:curl



/**
* curl_get()
*
* 通过curl获取页面内容
*
* @param mixed $url
* @param bool $gzip
* @return
*/
function curl_get($url, $gzip=false)
{
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
if($gzip)
{
curl_setopt($curl, CURLOPT_ENCODING, "gzip"); // 关键在这里
}
$content = curl_exec($curl);
curl_close($curl);
return $content;
}


方法二:file_get_contents


 


file_get_contents(“compress.zlib://”.$url);
无论页面是否经过gzip压缩,上述代码都可以正常工作!

PHP 4.3.0以后版本支持,还可以用于fopen之类的函数~!

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容