Maison développement back-end tutoriel php Explication détaillée de la façon dont PHP utilise l'extension zlib pour implémenter la sortie compressée GZIP

Explication détaillée de la façon dont PHP utilise l'extension zlib pour implémenter la sortie compressée GZIP

Jun 27, 2018 pm 06:00 PM
gzip php 压缩输出

Cet article présente principalement la méthode PHP utilisant l'extension zlib pour obtenir une sortie de compression GZIP. Il analyse en détail les compétences opérationnelles liées à la configuration PHP gzip et à la sortie de compression sous forme d'exemples. Les amis dans le besoin peuvent se référer à cet article. 🎜>

L'exemple décrit comment PHP utilise l'extension zlib pour implémenter la sortie compressée GZIP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Généralement, lorsque nous avons une grande quantité de données à transmettre et que nous espérons réduire la pression de la bande passante sur le serveur, nous adopterons une méthode pour compresser le transmission de fichiers. L'utilisation de zlib en PHP peut également implémenter la sortie compressée gzip, examinons un résumé des différentes méthodes de sortie compressée GZIP

GZIP (GNU-ZIP) est une technologie de compression. Après la compression GZIP, la taille de la page peut être réduite à 30 %, voire plus petite, que la taille d'origine. De cette façon, les utilisateurs se sentiront rafraîchis et heureux lors de leur navigation !

Préparation

1. Vous ne trouvez pas le fichier php_zlib.dll ?

La compression Zlib est intégrée à PHP depuis php4.3, donc au moins dans l'environnement Windows, il n'est pas nécessaire d'installer zlib.

2. Installez et construisez l'environnement d'exploitation php

Comme il ne suffit pas d'activer la configuration gzip via le fichier de configuration php.ini pour obtenir une sortie de compression php gzip, cela nécessite la prise en charge d'Apache. , il est donc recommandé d'installer et de créer l'environnement d'exploitation php + apache + mysql.

Étapes de configuration de php gzip

1 Ouvrez le fichier de configuration php.ini et recherchez

zlib.output_compression = Off. , Remplacez

zlib.output_compression = Off
;zlib.output_compression_level = -1
Copier après la connexion

par

zlib.output_compression = On
zlib.output_compression_level = 6
Copier après la connexion

Exemple 1

PHP utilise l'extension zlib pour implémenter la sortie de compression GZIP de la page

Code

function ob_gzip($content) // $content 就是要压缩的页面内容
{
if(!headers_sent() && extension_loaded("zlib") && strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))//判断页面头部信息是否输出,PHP中zlib扩 展是否已经加载,浏览器是否支持GZIP技术
{
$content = gzencode($content." n//此页已压缩",9); //为准备压缩的内容贴上"//此页已压缩"的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0 表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。
//用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
return $content; //返回压缩的内容
Copier après la connexion

Après la fonction est écrit , appelez-le simplement avec ob_start, donc l'original

devient ob_start()


Copiez le code Le code est le suivant :

ob_start(' ob_gzip'); //Ajoutez un paramètre à ob_start(), et le nom du paramètre est le nom de la fonction à l'instant. De cette façon, lorsque le contenu entre dans le tampon, PHP appellera la fonction ob_gzip pour le compresser.

Enfin terminer le tampon


Copier le code Le code est le suivant :

ob_end_flush( //); Zone tampon de fin, contenu de sortie. Bien entendu, vous n'avez pas besoin de cette fonction, car le contenu du tampon sera automatiquement affiché à la fin de l'exécution du programme.

Le dernier exemple complet

<?php
//调用一个函数名为ob_gzip的内容进行压缩
ob_start(&#39;ob_gzip&#39;);
//输出内容
ob_end_flush();
//这是ob_gzip函数
function ob_gzip($content)
{
if(!headers_sent()&&extension_loaded("zlib")
&&strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))
{
$content = gzencode($content." n//此页已压缩",9);
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
return $content;
}
?>
Copier après la connexion

Exemple 2

zlib compresse et décompresse swf Code du fichier

Exemple de fichier :

//没有加入判断swf文件是否已经压缩,入需要可以根据文件的第一个字节是&#39;F&#39;或者&#39;C&#39;来判断
压缩swf文件:
//--------------------------------------------------------------------------------------------------
//文件名
$filename = "test.swf";
//打开文件
$rs = fopen($filename,"r");
//读取文件的数据
$str = fread($rs,filesize($filename));
//设置swf头文件
$head = substr($str,1,8);
$head = "C".$head;
//获取swf文件内容
$body = substr($str,8);
//压缩文件内容,使用最高压缩级别9
$body = gzcompress($body, 9);
//合并文件头和内容
$str = $head.$body;
//关闭读取的文件流
fclose($rs);
//创建一个新的文件
$ws = fopen("create.swf","w");
//写文件
fwrite($ws,$str);
//关闭文件留
fclose($ws);
//----------------------------------------------------------------------------------------------------
?>
Copier après la connexion

Décompresser le fichier swf :

//----------------------------------------------------------------------------------------------------
//文件名
$filename = "test.swf";
//打开文件
$rs = fopen($filename,"r");
//读取文件的数据
$str = fread($rs,filesize($filename));
//设置swf头文件
$head = substr($str,1,8);
$head = "F".$head;
//获取swf文件内容
$body = substr($str,8);
//解压缩文件内容
$body = gzuncompress($body);
//合并文件头和内容
$str = $head.$body;
//关闭读取的文件流
fclose($rs);
//创建一个新的文件
$ws = fopen("create.swf","w");
//写文件
fwrite($ws,$str);
//关闭文件留
fclose($ws);
//----------------------------------------------------------------------------------------------------
?>
Copier après la connexion

Exemple 3

Activer la sortie compressée php zlib (gzip)

Points de connaissance de la configuration php gzip :

1. Par défaut, PHP n'active pas la sortie de compression zlib sur l'ensemble du site, mais utilise la fonction

sur les pages qui nécessitent une sortie compressée. Vous ne pouvez choisir que l'une des deux, sinon une erreur sera signalée. . ob_gzhandler

2,

zlib.output_compressionLa valeur par défaut est Off, vous pouvez la définir sur On, ou sur la taille du tampon de sortie (la valeur par défaut est 4k)

3,

zlib.output_compression_level représente le taux de compression. La valeur du taux de compression recommandée par défaut est de 6. La plage facultative est de 1 à 9. -1 représente la désactivation de la compression php zlib (gzip)

2. Enregistrez le php. .ini et redémarrez le serveur Apache

3. Ouvrez le fichier de configuration Apache httpd.conf, configurez et chargez

deflate_module

Cette étape est l'étape la plus critique pour activer la configuration de la sortie de la compression php gzip. De nombreux internautes diront que même si j'ai activé la configuration php gzip dans le fichier de configuration php.ini, je ne réalise toujours pas la compression php gzip. C'est parce qu'Apache n'est pas autorisé à charger <. 🎜>deflate_module

. La méthode est la suivante, remplacez

#LoadModule deflate_module modules/mod_deflate.so
Copier après la connexion

Supprimez le signe # au début et redémarrez Apache.

Articles qui pourraient vous intéresser :

Explication détaillée de la façon dont PHP implémente le cache mémoire distribué pour configurer la synchronisation des sessions de cluster Web


Un exemple d'explication de la fonction de découpe et de fusion de fichiers volumineux implémentée par PHP


Un exemple d'explication de l'algorithme de regroupement de mots simple implémenté par PHP


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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.

See all articles