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 相关文章推荐
快速配置PHPMyAdmin方法
Jun 05 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
关于页面优化和伪静态
Oct 11 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
Aug 07 PHP
php绘制一条弧线的方法
Jan 24 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
Apr 15 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 PHP
PHP实现断点续传乱序合并文件的方法
Sep 06 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 遍历XP文件夹下所有文件
2008/11/27 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
PHP 事务处理数据实现代码
2010/05/13 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
ext监听事件方法[初级篇]
2008/04/27 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
jQuery使用$.ajax进行即时验证实例详解
2015/12/11 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
js实现轮播图效果 z-index实现轮播图
2020/01/17 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
利用python获得时间的实例说明
2013/03/25 Python
Python实现全角半角转换的方法
2014/08/18 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
Python中for循环和while循环的基本使用方法
2015/08/21 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
scrapy利用selenium爬取豆瓣阅读的全步骤
2020/09/20 Python
HTML5 localStorage使用总结
2017/02/22 HTML / CSS
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
介绍一下Python下range()函数的用法
2013/11/07 面试题
催款函怎么写
2015/06/24 职场文书
灵能百分百第三季什么时候来?
2022/03/15 日漫