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 程序员的调试技术小结
Nov 15 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
php全局变量和类配合使用深刻理解
Jun 05 PHP
关于zend studio 出现乱码问题的总结
Jun 23 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
php实现概率性随机抽奖代码
Jan 02 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
PHP培训要多少钱
Jun 06 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
Jan 16 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 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
pdo中使用参数化查询sql
2011/08/11 PHP
解析PHP正则提取或替换img标记属性
2013/06/26 PHP
基于php中使用excel的简单介绍
2013/08/02 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
Javascript调用C#代码
2011/01/17 Javascript
jquery解析XML字符串和XML文件的方法说明
2014/02/21 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
原生js实现class的添加和删除简单代码
2016/07/12 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
老生常谈javascript的类型转换
2016/10/12 Javascript
Nodejs进阶:核心模块net入门学习与实例讲解
2016/11/21 NodeJs
用Webpack构建Vue项目的实践
2017/11/07 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
python中类的一些方法分析
2014/09/25 Python
pycharm安装图文教程
2017/05/02 Python
Python编程把二叉树打印成多行代码
2018/01/04 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python打包方法Pyinstaller的使用
2018/10/09 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
几个MySql的面试题
2013/04/22 面试题
设备收款委托书范本
2014/10/02 职场文书
毕业班工作总结
2015/08/10 职场文书
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js