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 24 PHP
php上的memcache和memcached两个pecl库
Mar 29 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
php连接mssql数据库的几种方法
Feb 21 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题
Jul 03 PHP
thinkphp文件引用与分支结构用法实例
Nov 26 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP微信开发之模板消息回复
Jun 24 PHP
PHP 芝麻信用接入的注意事项
Dec 01 PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 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
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
动态加载js的几种方法
2006/10/23 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
基于JavaScript怎么实现让歌词滚动播放
2015/11/03 Javascript
基于JavaScript实现回到页面顶部动画代码
2016/05/24 Javascript
利用jQuery实现CheckBox全选/全不选/反选的简单代码
2016/05/31 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
python简单猜数游戏实例
2015/07/09 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
python实现身份证实名认证的方法实例
2019/11/08 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
Python 定义只读属性的实现方式
2020/03/05 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
Python 合并拼接字符串的方法
2020/07/28 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
偷看我的初中毕业鉴定
2014/01/29 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
小学校长汇报材料
2014/08/20 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
2014年高三班主任工作总结
2014/12/05 职场文书
小学体育教学随笔
2015/08/14 职场文书
2016入党积极分子党课学习心得体会
2015/10/09 职场文书