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 09 PHP
PHP 冒泡排序算法的实现代码
Aug 08 PHP
php存储过程调用实例代码
Feb 03 PHP
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
php导入模块文件分享
Mar 17 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
May 12 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
PHP count_chars()函数讲解
Feb 14 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 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 Session变量不能传送到下一页的解决方法
2009/11/27 PHP
php 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
JQuery 弹出框定位实现方法
2010/12/02 Javascript
JQuery中使用.each()遍历元素学习笔记
2014/11/08 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
2015/08/05 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
2017/03/09 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Python实现视频下载功能
2017/03/14 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
python3.6数独问题的解决
2019/01/21 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
python实现俄罗斯方块游戏(改进版)
2020/03/13 Python
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
测试工程师岗位职责
2013/11/28 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
挂牌仪式主持词
2014/03/20 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
公司行政管理制度范本
2015/08/05 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
CI Games宣布《堕落之王2》使用虚幻引擎5制作 预计将于2023年正式发售
2022/04/11 其他游戏