Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert eine Methode, um festzustellen, ob eine Seite oder ein Bild von gzip komprimiert wurde

PHP implementiert eine Methode, um festzustellen, ob eine Seite oder ein Bild von gzip komprimiert wurde

墨辰丷
墨辰丷Original
2018-05-24 10:23:521609Durchsuche

Der folgende Editor stellt Ihnen eine PHP-Methode zur Verfügung, mit der Sie feststellen können, ob eine Seite oder ein Bild von gzip komprimiert wurde. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und schauen wir uns das an

Verwenden Sie PHP, um festzustellen, ob die Seite oder das Bild von gzip komprimiert wurde

Verwenden Sie get_headers

Seiteninhalt

<?php
ob_start(&#39;ob_gzhandler&#39;); // 开启gzip,屏蔽则关闭

$data = array(
 array(&#39;name&#39;=>&#39;one&#39;,&#39;value&#39;=>1),
 array(&#39;name&#39;=>&#39;two&#39;,&#39;value&#39;=>2),
 array(&#39;name&#39;=>&#39;three&#39;,&#39;value&#39;=>3)
);

header(&#39;content-type:application/json&#39;);
echo json_encode($data);
?>

Verwenden Sie get_headers, um zu bestimmen, ob die GZIP-Komprimierung verwendet werden soll

<?php
$url = &#39;http://www.example.com/&#39;;
var_dump(check_gzip($url));

/**
 * 判断url是否经过gzip压缩
 * @param String $url 来源
 * @param Boolean
 */
function check_gzip($url){
 $header = get_headers($url, 1);
 if(isset($header[&#39;Vary&#39;]) && $header[&#39;Vary&#39;]==&#39;Accept-Encoding&#39;){
  return true;
 }
 return false;
}
?>

Testergebnisse:

Wenn ob_gzhandler hinzugefügt wird, gibt es true zurück, und wenn es gelöscht wird, gibt es false zurück

2. Verwenden Sie Curl

Bild

<?php
header(&#39;content-type:image/jpeg&#39;);
ob_start(&#39;ob_gzhandler&#39;); // 开启gzip,屏蔽则关闭
echo file_get_contents(&#39;test.jpg&#39;);
?>

Verwenden Sie Curl, um zu bestimmen, ob die GZIP-Komprimierung verwendet werden soll

<?php
$url = &#39;http://www.example.com/&#39;;
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, &#39;&#39;);  // 不限制编码类型
 $response = curl_exec($ch);
 if(!curl_errno($ch)){
  $info = curl_getinfo($ch);
  // 获取header
  $header_size = $info[&#39;header_size&#39;];
  $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(&#39;/Content-Encoding: (.*)\s/i&#39;, $header_str, $matches);
  if(isset($matches[1]) && $matches[1]==&#39;gzip&#39;){
   return true;
  }
 }
 return false;
}
?>

Testergebnisse:

Wenn ob_gzhandler hinzugefügt wird, wird true und false zurückgegeben wird nach dem Löschen zurückgegeben

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

PHP-Funktion wandelt jede Zahl in die entsprechende chinesische Zeichenzahl um

Gedanken verursacht durch protected in PHP

PHPRegulärer Ausdruck erfassende Gruppe und nicht erfassende Gruppe

Das obige ist der detaillierte Inhalt vonPHP implementiert eine Methode, um festzustellen, ob eine Seite oder ein Bild von gzip komprimiert wurde. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn