Maison >développement back-end >tutoriel php >Déterminez si la page ou l'image a été compressée par gzip via php

Déterminez si la page ou l'image a été compressée par gzip via php

jacklove
jackloveoriginal
2018-06-20 17:36:021641parcourir

Utilisez php pour déterminer si la page ou l'image a été compressée par gzip

1 Utilisez get_headers

Contenu de la page

<?phpob_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);?>

Utilisez get_headers pour déterminer s'il faut utiliser la compression gzip

<?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;
}?>

Résultats des tests :
Lorsque ob_gzhandler est ajouté, return true, return false

après la suppression 2. Utilisez curl

image

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

Utilisez curl pour déterminer s'il faut utiliser la compression gzip

<?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;
}?>

Résultats des tests :
Lors de l'ajout de ob_gzhandler, return true, return false après suppression

Cet article explique comment utiliser php pour déterminer si une page ou une image a été compressée par gzip. Pour plus de contenu connexe, veuillez. faites attention au site Web chinois php.

Recommandations associées :

Exemple HTML5 d'obtention de la position géographique actuelle et de son affichage sur la carte Baidu

via php Auto -incrémenter l'identifiant pour créer une classe de numéros unique

Explication sur la sortie de page optimisée en php, compatible avec des exemples d'accès aux robots des moteurs de recherche

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn