毫无疑问,直接获取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之类的函数~!