php读取远程gzip压缩网页的方法


Posted in PHP onDecember 29, 2014

今天在调取一家商城的页面信息时候,使用file_get_contents抑或curl:

$url = 'http://www.xxx.com/21/?type=23′;  

$temp = file_get_contents($url);  

echo $temp;

都得到一片乱码,查看了许多内容,包括页面的header信息,发现原来页面使用了。

 

php读取远程gzip压缩网页的方法

 

类似的信息,即Content-Encoding为gzip,即该站点开启了gzip压缩。这里的解决方案有多种,当然如果你使用file_get_contents的话,可以这样修改:

 

file_get_contents("compress.zlib://".$url);

或者使用curl来完成:

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;   

} 

同时,参考手册上面的解法,还可以对保存gzip类型的字符串进行处理如下:

function gzdecode($data){   

    $g=tempnam(‘/tmp','ff');   

    @file_put_contents($g,$data);   

    ob_start();   

    readgzfile($g);   

    $d=ob_get_clean();   

    return $d;   

}
PHP 相关文章推荐
PHP环境搭建最新方法
Sep 05 PHP
set_include_path在win和linux下的区别
Jan 10 PHP
PHP array_push 数组函数
Dec 26 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
Jun 10 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 PHP
php常用日期时间函数实例小结
Jul 04 PHP
php7性能提升的原因详解
Oct 13 PHP
关于PHP中interface的用处详解
Jul 26 PHP
php导入大量数据到mysql性能优化技巧
Dec 29 #PHP
推荐几个开源的微信开发项目
Dec 28 #PHP
dedecms集成财付通支付接口
Dec 28 #PHP
VPS中使用LNMP安装WordPress教程
Dec 28 #PHP
php随机取mysql记录方法小结
Dec 27 #PHP
php使用PDO方法详解
Dec 27 #PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 #PHP
You might like
杏林同学录(三)
2006/10/09 PHP
也谈截取首页新闻 - 范例
2006/10/09 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
php switch语句多个值匹配同一代码块的实现
2014/03/03 PHP
php查看当前Session的ID实例
2015/03/16 PHP
PHP排序算法类实例
2015/06/17 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
js计算页面刷新的次数
2009/07/20 Javascript
JQuery 返回布尔值Is()条件判断方法代码
2012/05/14 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
js实现(全选)多选按钮的方法【附实例】
2016/03/30 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
vue-router懒加载速度缓慢问题及解决方法
2018/11/25 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
[39:02]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs VGJ.T
2018/04/01 DOTA
[05:37]DOTA2-DPC中国联赛 正赛 Elephant vs iG 选手采访
2021/03/11 DOTA
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
Becextech新西兰:数码单反相机和手机在线商店
2018/04/27 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
离职保密承诺书
2014/05/28 职场文书
幼儿园大班区域活动总结
2014/07/09 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
质量保证书
2015/01/17 职场文书
2015年教师学期工作总结
2015/04/30 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
Java基础-封装和继承
2021/07/02 Java/Android