php读取远程gzip压缩网页的方法

 更新时间:2014年12月29日 09:04:37   投稿:junjie  
这篇文章主要介绍了php读取远程gzip压缩网页的方法,当站点使用gzip压缩时,使用常规的远程获取方法会得到乱码结果,使用本文方法即可解决这个问题,需要的朋友可以参考下

今天在调取一家商城的页面信息时候,使用file_get_contents抑或curl:


复制代码 代码如下:

$url = 'http://www.xxx.com/21/?type=23′; 
$temp = file_get_contents($url); 
echo $temp;


都得到一片乱码,查看了许多内容,包括页面的header信息,发现原来页面使用了。

 

 

类似的信息,即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 弱引用的相关总结

    这篇文章主要介绍了PHP 弱引用的相关总结,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    2021-05-05
  • header导出Excel应用示例

    header导出Excel应用示例

    本文为大家介绍下使用header导出Excel,具体实现代码如下,感兴趣的朋友不要错过
    2014-01-01
  • 将FCKeditor导入PHP+SMARTY的实现方法

    将FCKeditor导入PHP+SMARTY的实现方法

    这篇文章主要介绍了将FCKeditor导入PHP+SMARTY的实现方法,涉及整合FCKeditor与SMARTY的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-01-01
  • php 实现svg转化png格式的方法分析

    php 实现svg转化png格式的方法分析

    这篇文章主要介绍了php 实现svg转化png格式的方法,结合实例形式分析了php svg转化png格式相关实现技巧、遇到的问题与操作注意事项,需要的朋友可以参考下
    2020-01-01
  • 详解php内存管理机制与垃圾回收机制

    详解php内存管理机制与垃圾回收机制

    在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP的GC垃圾处理机制。PHP的内存管理,分为俩部分, 第一部分是PHP自身的内存管理,而第二部分是zend_alloc中描写的关于PHP自身的内存管理。本文将详细介绍这两个内容。
    2021-05-05
  • php用户密码加密算法分析【Discuz加密算法】

    php用户密码加密算法分析【Discuz加密算法】

    这篇文章主要介绍了php用户密码加密算法,较为详细的分析了Discuz加密算法的原理,并结合实例形式对比了.net算法的实现方法总结了php进行用户加密的流程与实现方法,需要的朋友可以参考下
    2016-10-10
  • PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法

    PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决

    这篇文章主要介绍了PHP错误WARNING: SESSION_START() [FUNCTION.SESSION-START]解决方法,需要的朋友可以参考下
    2014-05-05
  • PHP 显示客户端IP与服务器IP的代码

    PHP 显示客户端IP与服务器IP的代码

    如何用 PHP 来获取客户端 IP 和 服务器(主机)的 IP 呢?需要的朋友可以参考下。
    2010-10-10
  • PHP安全之register_globals的on和off的区别

    PHP安全之register_globals的on和off的区别

    这篇文章主要介绍了PHP安全之register_globals的on和off的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • PHP文件操作详解

    PHP文件操作详解

    这篇文章主要介绍了PHP文件操作,包括文件读取、判断文件是否存在、修改时间等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论