php 查看是否gzip,php判断网页是否经过GZIP压缩

今天用工具检测网页是否经过GZIP压缩时,突然想到是否可以利用php代码来检测呢,查了查资料然后写了测试代码,竟然成功了。分享一下,看有人需要不。

8c7e91f19431a4a48cbeb25c7ab3fe71.png

php利用curl来检测网页是否经过GZIP压缩的方法

使用 php curl 来检查网页文件是否经过GZIP压缩,直接编写函数调用即可,简单方便

编写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;

}

?>

调用函数代码

$url = 'https://www.freexyz.cn';

if(IsGzip($url)){

echo $url.' 经过GZIP压缩';

}else{

echo $url.' 未经过GZIP压缩';

}

?>

输出结果:

https://www.freexyz.cn 经过GZIP压缩

php 利用 get_headers() 函数来检测网页是否经过GZIP压缩

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

编写php函数

function IsGzip($url){

$header = get_headers($url, 1);

if(isset($header['Vary']) && $header['Vary']=='Accept-Encoding'){

return true;

}

return false;

}

?>

函数调用的方法

$url = 'https://www.baidu.com';

if(IsGzip($url)){

echo $url.' 经过GZIP压缩';

}else{

echo $url.' 未经过GZIP压缩';

}

?>

输出结果:

https://www.baidu.com 经过GZIP压缩

注:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值