php判定网页是否颠末GZIP压缩

本日用东西检测网页是否颠末GZIP压缩时,溘然想到是否可以操作php代码来检测呢,查了查资料然后写了测试代码,竟然乐成了。分享一下,看有人需要不。

php判定网页是否颠末GZIP压缩

php操作curl来检测网页是否颠末GZIP压缩的要领

利用 php curl 来查抄网页文件是否颠末GZIP压缩,直接编写函数挪用即可,简朴利便

编写php函数

<?php function IsGzip($url){     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, $url);     curl_setopt($ch, CURLOPT_HEADER, 1);       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     curl_setopt($ch, CURLOPT_ENCODING, '');      $response = curl_exec($ch);     if(!curl_errno($ch)){         $info = curl_getinfo($ch);         $header_size = $info['header_size'];         $header_str = substr($response, 0, $header_size);         $filter = array("\r\n", "\r");         $header_str = str_replace($filter, PHP_EOL, $header_str);         preg_match('/Content-Encoding: (.*)\s/i', $header_str, $matches);         if(isset($matches[1]) && $matches[1]=='gzip'){             return true;         }     }     return false; } ?>

挪用函数代码

<?php $url = 'https://www.feiniaomy.com'; if(IsGzip($url)){     echo $url.' 颠末GZIP压缩'; }else{     echo $url.' 未颠末GZIP压缩'; } ?>

输出功效:

https://www.feiniaomy.com 颠末GZIP压缩

php 操作 get_headers() 函数来检测网页是否颠末GZIP压缩

get_headers() 是php系统级函数,他返回一个包括有处事器响应一个 HTTP 请求所发送的标头的数组,我们可以检测数据中是否含有 Vary 元素,以及 Vary 元素的值是否为 Accept-Encoding ,来检测网页文件是否举办GZIP压缩

编写php函数

<?php function IsGzip($url){     $header = get_headers($url, 1);     if(isset($header['Vary']) && $header['Vary']=='Accept-Encoding'){         return true;     }     return false; } ?>

函数挪用的要领

<?php $url = 'https://www.baidu.com'; if(IsGzip($url)){     echo $url.' 颠末GZIP压缩'; }else{     echo $url.' 未颠末GZIP压缩'; } ?>

输出功效:

https://www.baidu.com 颠末GZIP压缩

注:

关于 get_headers() 函数的利用,请查察本站的其它文章。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/8991.html