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实现WEB动态网页静态
Oct 09 PHP
功能齐全的PHP发送邮件类代码附详细说明
Jul 10 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
php curl上传、下载、https登陆实现代码
Jul 23 PHP
PHPStudy下如何为Apache安装SSL证书的方法步骤
Jan 23 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 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性能优化的介绍
2013/06/20 PHP
PHP实现链式操作的核心思想
2015/06/23 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
javascript实现unicode与ASCII相互转换的方法
2015/12/10 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
jQuery中DOM节点的删除方法总结(超全面)
2017/01/22 Javascript
超简单的Vue.js环境搭建教程
2017/03/17 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
JavaScript实现动态留言板
2020/03/16 Javascript
JavaScript Blob对象原理及用法详解
2020/10/14 Javascript
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python对一个数向上取整的实例方法
2020/06/18 Python
20行Python代码实现一款永久免费PDF编辑工具的实现
2020/08/27 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
HTML5 Canvas的常用线条属性值总结
2016/03/17 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
C#笔试题集合
2013/06/21 面试题
恒华伟业笔试面试题
2015/02/26 面试题
退伍老兵事迹材料
2014/01/31 职场文书
4s店活动策划方案
2014/08/25 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
停电放假通知
2015/04/14 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python