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

前端之家收集整理的这篇文章主要介绍了php 判断页面或图片是否经过gzip压缩的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

1.使用get_headers

页面内容

PHP;"> $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压缩

PHP;"> /**

  • 判断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

图片

PHP;">

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

PHP;"> /**

  • 判断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压缩的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

猜你在找的PHP相关文章