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的FTP学习(二)[转自奥索]
Oct 09 PHP
逐步提升php框架的性能
Jan 10 PHP
删除及到期域名的查看(抢域名必备哦)
May 14 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
php获取目标函数执行时间示例
Mar 04 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
smarty内部日期函数html_select_date()用法实例分析
Jul 08 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php SQL防注入代码集合
2008/04/25 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
phpstrom使用xdebug配置方法
2013/12/17 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
php文件包含目录配置open_basedir的使用与性能详解
2017/04/03 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
jQuery写fadeTo示例代码
2014/02/21 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
layui关闭弹窗后刷新主页面和当前更改项的例子
2019/09/06 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
Python作用域用法实例详解
2016/03/15 Python
python executemany的使用及注意事项
2017/03/13 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python的UTC时间转换讲解
2019/02/26 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
如何写python的配置文件
2020/06/07 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
2020/12/09 Python
python模块内置属性概念及实例
2021/02/18 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
巴西婴儿用品商店:Bebe Store
2017/11/23 全球购物
合作经营协议书
2014/04/17 职场文书
保研推荐信
2014/05/09 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
黄埔军校观后感
2015/06/10 职场文书
首次购房证明
2015/06/19 职场文书