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操作Access类(PHP+ODBC+Access)
Jan 02 PHP
PHP 引用是个坏习惯
Mar 12 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php操作xml
Oct 27 PHP
php处理restful请求的路由类分享
Feb 27 PHP
destoon实现调用图文新闻的方法
Aug 21 PHP
Yii框架获取当前controlle和action对应id的方法
Dec 03 PHP
php将数组转换成csv格式文件输出的方法
Mar 14 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
Apr 27 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
php无限级分类实现评论及回复功能
Feb 18 PHP
深入解析PHP底层机制及相关原理
Dec 11 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
thinkphp微信开发(消息加密解密)
2015/12/02 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
js 动态选中下拉框
2009/11/26 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
node.js中使用node-schedule实现定时任务实例
2014/06/03 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
js 只比较时间大小的实例
2017/10/26 Javascript
五步轻松实现zTree的使用
2017/11/01 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python自动调用IE打开某个网站的方法
2015/06/03 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
Python线程threading模块用法详解
2020/02/26 Python
python——全排列数的生成方式
2020/02/26 Python
python 简单的调用有道翻译
2020/11/25 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
食品安全标语
2014/06/07 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
小鞋子观后感
2015/06/05 职场文书
英语投诉信范文
2015/07/03 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
WebWorker 封装 JavaScript 沙箱详情
2021/11/02 Javascript
MySQL查询日期时间
2022/05/15 MySQL