Maison  >  Article  >  développement back-end  >  Explication détaillée de la façon dont PHP compresse les données JSON renvoyées et les affiche avec gzip

Explication détaillée de la façon dont PHP compresse les données JSON renvoyées et les affiche avec gzip

*文
*文original
2018-01-05 17:56:063302parcourir

Comment PHP compresse-t-il et génère-t-il les données JSON renvoyées avec gzip ? Cet article présente principalement la méthode d'utilisation de la compression gzip pour générer les données au format JSON renvoyées en PHP. L'exemple d'environnement dans l'article est le système Linux et les amis qui en ont besoin peuvent s'y référer. J'espère que cela aide tout le monde.

1. Comparaison de la sortie HTTP avec et sans compression

201633154618959.jpg (447×226)

2. >

Utilisez le module Apache mod_deflate pour activer gzip

Méthode d'activation :

sudo a2enmod deflate
sudo /etc/init.d/apache2 restart
Méthode de fermeture :

sudo a2dismod deflate
sudo /etc/init.d/apache2 restart

3. Les paramètres nécessitent une compression gzip Le type de sortie

Le type de sortie de json est application/json, vous pouvez donc le définir comme ceci

Ajoutez

à 7b799fe73e35dcfdc019b13f54de80e5bb15ed4aadeed04b3991578461de0768 httpd.conf
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
</IfModule>
<?php
$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),
  array(&#39;name&#39;=>&#39;four&#39;,&#39;value&#39;=>4),
  array(&#39;name&#39;=>&#39;five&#39;,&#39;value&#39;=>5),
  array(&#39;name&#39;=>&#39;six&#39;,&#39;value&#39;=>6),
  array(&#39;name&#39;=>&#39;seven&#39;,&#39;value&#39;=>7),
  array(&#39;name&#39;=>&#39;eight&#39;,&#39;value&#39;=>8),
  array(&#39;name&#39;=>&#39;nine&#39;,&#39;value&#39;=>9),
  array(&#39;name&#39;=>&#39;ten&#39;,&#39;value&#39;=>10),
);

header(&#39;content-type:application/json&#39;);
echo json_encode($data);
?>
Sortie avant la configuration de gzip :


201633154714151.jpg (346×83)

Sortie après la configuration de gzip :


201633154732511.jpg (334×99)

4. Sortie json unique en utilisant la compression gzip

Après avoir défini AddOutputFilterByType DEFLATE application/json, toutes les données sorties au format json seront sorties en utilisant la compression gzip.

Si vous souhaitez utiliser la compression gzip uniquement pour un certain json et n'avez pas besoin des autres, vous pouvez utiliser la méthode ob_start();

D'abord, il n'est pas nécessaire de définir AddOutputFilterByType, puis d'ajouter ob_start('ob_gzhandler') au début du code ;

<?php
ob_start(&#39;ob_gzhandler&#39;);

$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),
  array(&#39;name&#39;=>&#39;four&#39;,&#39;value&#39;=>4),
  array(&#39;name&#39;=>&#39;five&#39;,&#39;value&#39;=>5),
  array(&#39;name&#39;=>&#39;six&#39;,&#39;value&#39;=>6),
  array(&#39;name&#39;=>&#39;seven&#39;,&#39;value&#39;=>7),
  array(&#39;name&#39;=>&#39;eight&#39;,&#39;value&#39;=>8),
  array(&#39;name&#39;=>&#39;nine&#39;,&#39;value&#39;=>9),
  array(&#39;name&#39;=>&#39;ten&#39;,&#39;value&#39;=>10),
);

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

Recommandations associées :

Structure syntaxique et exemples de parcours de tableau PHP pour chaque

Résumé de la méthode de tri des tableaux PHP

Une brève analyse de la transmission json en php et js

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