加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-12 22:05:12 所属栏目:PHP教程 来源:网络整理
导读:使用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($d

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读