PHP ermittelt, ob die Auslagerungsdatei von gzip komprimiert wurde

*文
Freigeben: 2023-03-19 06:06:01
Original
1902 Leute haben es durchsucht

Wie stellt PHP fest, ob die Auslagerungsdatei gzip-komprimiert wurde? In diesem Artikel wird hauptsächlich erläutert, wie PHP ermittelt, ob eine Seite oder ein Bild von gzip komprimiert wurde. Teilen Sie es als Referenz mit allen. Ich hoffe, es hilft allen.

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

1. 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);
?>
Nach dem Login kopieren

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;
}
?>
Nach dem Login kopieren

Testergebnisse:

Wenn ob_gzhandler hinzugefügt wird, gibt es true zurück , und wenn es gelöscht wird, wird false zurückgegeben Curl, um zu bestimmen, ob die GZIP-Komprimierung verwendet werden soll


Testergebnisse:

Wenn ob_gzhandler hinzugefügt wird, wird true zurückgegeben, und nach dem Löschen wird false zurückgegeben
<?php
header(&#39;content-type:image/jpeg&#39;);
ob_start(&#39;ob_gzhandler&#39;); // 开启gzip,屏蔽则关闭
echo file_get_contents(&#39;test.jpg&#39;);
?>
Nach dem Login kopieren

<?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;
}
?>
Nach dem Login kopieren
Verwandte Empfehlungen:


Zwei Methoden zum Aktivieren der GZIP-Komprimierung im PHP-Code


Der Einfluss des HTML-Schreibens auf die GZIP-Komprimierungsrate

PHP-Ausgabe-GZIP-Komprimierung

Das obige ist der detaillierte Inhalt vonPHP ermittelt, ob die Auslagerungsdatei von gzip komprimiert wurde. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!