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 radio 单选框获取与保持值的实现代码
May 15 PHP
php继承的一个应用
Sep 06 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
Dec 08 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
PHP COOKIE及时生效的方法介绍
Feb 14 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
PHP实现简单的新闻发布系统实例
Jul 28 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
Apr 14 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导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
BootStrap Fileinput初始化时的一些参数
2016/12/30 Javascript
nodejs 搭建简易服务器的图文教程(推荐)
2017/07/18 NodeJs
实现两个文本框同时输入的实例
2017/09/25 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)
2020/03/11 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
Python3+Appium安装使用教程
2019/07/05 Python
Python版中国省市经纬度
2020/02/11 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
Python如何对齐字符串
2020/07/30 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
最新自我评价范文
2013/11/16 职场文书
小学领导班子对照材料
2014/08/23 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
工作简报怎么写
2015/07/21 职场文书
Python基础 括号()[]{}的详解
2021/11/07 Python