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 13 PHP
dedecms模版制作使用方法
Apr 03 PHP
Zend Studio (eclipse)使用速度优化方法
Mar 23 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
PHP之APC缓存详细介绍 apc模块安装
Jan 13 PHP
php实例分享之html转为rtf格式
Jun 02 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
laravel学习教程之关联模型
Jul 30 PHP
php自动加载代码实例详解
Feb 26 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 什么是PEAR?(第二篇)
2009/03/19 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
通过JS来动态的修改url,实现对url的增删查改
2014/09/01 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
jQuery Ajax传值到Servlet出现乱码问题的解决方法
2016/10/09 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
Python遍历目录并批量更换文件名和目录名的方法
2016/09/19 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
python实现图像识别功能
2018/01/29 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
python实现决策树分类(2)
2018/08/30 Python
wxPython实现画图板
2020/08/27 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
C语言变量的命名规则都有哪些
2013/12/27 面试题
事务机电主管工作职责
2014/02/25 职场文书
小学作文评语大全
2014/04/21 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
学生个人评语大全
2015/01/04 职场文书
三好学生竞选稿
2015/11/21 职场文书
2016党员干部反腐倡廉心得体会
2016/01/13 职场文书
护士医德医风心得体会
2016/01/25 职场文书