php 判断页面或图片是否经过gzip压缩的方法

开发技术 作者: 2024-08-17 07:40:01
下面小编就为大家带来一篇php 判断页面或图片是否经过gzip压缩的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

使用PHP判断页面或图片是否经过gzip压缩方法

1.使用get_headers

页面内容

$data = array(
array('name'=>'one','value'=>1),array('name'=>'two','value'=>2),array('name'=>'three','value'=>3)
);

header('content-type:application/json');
echo json_encode($data);
?>

使用get_headers判断是否使用gzip压缩

/**

  • 判断url是否经过gzip压缩
  • @param String $url 来源
  • @param Boolean
    */
    function check_gzip($url){
    $header = get_headers($url,1);
    if(isset($header['Vary']) && $header['Vary']=='Accept-Encoding'){
    return true;
    }
    return false;
    }
    ?>

测试结果:

当加上ob_gzhandler时,返回true,删除后返回false

2.使用curl

图片

使用curl判断是否使用gzip压缩

/**

  • 判断url是否经过gzip压缩
  • @param String $url 来源
  • @param Boolean
    */
    function check_gzip($url){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_HEADER,1); // 输出header信息
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); // 返回的信息不直接输出
    curl_setopt($ch,CURLOPT_ENCODING,''); // 不限制编码类型
    $response = curl_exec($ch);
    if(!curl_errno($ch)){
    $info = curl_getinfo($ch);
    // 获取header
    $header_size = $info['header_size'];
    $header_str = substr($response,$header_size);
    $filter = array("\r\n","\r");
    $header_str = str_replace($filter,PHP_EOL,$header_str);

// 检查content-encoding
preg_match('/Content-Encoding: (.*)\s/i',$header_str,$matches);
if(isset($matches[1]) && $matches[1]=='gzip'){
return true;
}
}
return false;
}
?>

测试结果:

当加上ob_gzhandler时,返回true,删除后返回false

以上这篇PHP 判断页面或图片是否经过gzip压缩的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_63670.html
php gzip 压缩