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 反射机制实现动态代理的代码
Oct 22 PHP
php set_magic_quotes_runtime() 函数过时解决方法
Jul 08 PHP
php入门之连接mysql数据库的一个类
Apr 21 PHP
php中定时计划任务的实现原理
Jan 08 PHP
PHP 安全检测代码片段(分享)
Jul 05 PHP
php不允许用户提交空表单(php空值判断)
Nov 12 PHP
php中JSON的使用方法
Apr 30 PHP
PHP实现的进度条效果详解
May 03 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
Laravel中前端js上传图片到七牛云的示例代码
Sep 04 PHP
PHP字符串与数组处理函数用法小结
Jan 07 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php伪静态之APACHE篇
2014/06/02 PHP
php实现简单文件下载的方法
2015/01/30 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
PHP框架Laravel插件Pagination实现自定义分页
2020/04/22 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
jQuery 渐变下拉菜单
2009/12/15 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
JSQL  一个 web DB 的封装
2010/05/05 Javascript
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
javascript基本语法
2016/05/31 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
vue2.0 中#$emit,$on的使用详解
2017/06/07 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
JavaScript迭代器的含义及用法
2019/06/21 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
就业推荐表自我鉴定
2013/10/29 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
服务承诺书范文
2014/05/19 职场文书
励志演讲稿300字
2014/08/21 职场文书
办公室卫生管理制度
2015/08/04 职场文书
股东出资协议书
2016/03/21 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python