Home > Article > Backend Development > Determine whether the page or image has been compressed by gzip through php
Use php to determine whether the page or image has been compressed by gzip
Page content
<?phpob_start('ob_gzhandler'); // 开启gzip,屏蔽则关闭$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);?>
Use get_headers to determine whether to use gzip compression
<?php$url = 'http://www.example.com/'; var_dump(check_gzip($url));/** * 判断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; }?>
Test results:
When ob_gzhandler is added, true is returned , return after deletion false
2. Use curl
Picture
<?phpheader('content-type:image/jpeg'); ob_start('ob_gzhandler'); // 开启gzip,屏蔽则关闭echo file_get_contents('test.jpg');?>
Use curl to judge Whether to use gzip compression
<?php$url = 'http://www.example.com/'; var_dump(check_gzip($url));/** * 判断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, 0, $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; }?>
Test results:
When ob_gzhandler is added, true is returned, and returned after deletion false
This article explains how to use PHP to determine whether a page or image has been compressed by gzip. For more related content, please pay attention to the PHP Chinese website.
Related recommendations:
HTML5 example of obtaining the current geographical location and displaying it on Baidu map
Through php Auto-increment id to create a unique number class
Explanation on PHP optimized page output, compatible with examples of search engine robot access
The above is the detailed content of Determine whether the page or image has been compressed by gzip through php. For more information, please follow other related articles on the PHP Chinese website!