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模板,主要想体现一下思路
Dec 25 PHP
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
php 记录进行累加并显示总时长为秒的结果
Nov 04 PHP
探讨:如何编写PHP扩展
Jun 13 PHP
php 验证码(倾斜,正弦干扰线,黏贴,旋转)
Jun 29 PHP
mac环境中使用brew安装php5.5.15
Aug 18 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP文件操作方法汇总
Jul 01 PHP
深入讲解PHP Session及如何保持其不过期的方法
Aug 18 PHP
php简单日历函数
Oct 28 PHP
PHP设计模式之适配器模式定义与用法详解
Apr 03 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 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
PHP 存储文本换行实现方法
2010/01/05 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
php错误日志简单配置方法
2016/07/11 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
再论Javascript下字符串连接的性能
2011/03/05 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
jQuery实现的经典滑动门效果
2015/09/22 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
[03:04]DOTA2超级联赛专访ZSMJ “莫名其妙”的逆袭
2013/05/23 DOTA
python入门之语句(if语句、while语句、for语句)
2015/01/19 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
Python登录注册验证功能实现
2018/06/18 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
python中退出多层循环的方法
2018/11/27 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
Python爬取12306车次信息代码详解
2020/08/12 Python
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
教师网络培训感言
2014/03/09 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
高中政治教学反思
2016/02/23 职场文书