折雨的天空

博客介绍:本博客当前共有文章【968】篇,总阅读量【5,177,018】次,第一篇博客发表于【2011年04月06日 10时34分】,距今已【4990】天,感谢您的使用!

您的位置:折雨的天空 >php开发> snoopy获取页面内容遇到gzip的情况

snoopy获取页面内容遇到gzip的情况

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

------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------

转载请注明本文标题和链接:《snoopy获取页面内容遇到gzip的情况

奖励一下

取消

分享不易,烦请有多多打赏,如您也困难,点击右边关闭即可!

扫码支持
扫码打赏,5元,10元,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

-秒后自动关闭,如已打赏,或者不愿打赏,请点击右上角关闭图标。

发表评论

路人甲 表情
看不清楚?点图切换