Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung, wie PHP die zurückgegebenen JSON-Daten komprimiert und mit gzip ausgibt

Detaillierte Erklärung, wie PHP die zurückgegebenen JSON-Daten komprimiert und mit gzip ausgibt

*文
*文Original
2018-01-05 17:56:063243Durchsuche

Wie komprimiert und gibt PHP die zurückgegebenen JSON-Daten mit gzip aus? In diesem Artikel wird hauptsächlich die Methode zur Verwendung der GZIP-Komprimierung zur Ausgabe der in PHP zurückgegebenen JSON-Formatdaten vorgestellt. Die Beispielumgebung im Artikel ist ein Linux-System und ein Apache-Server. Ich hoffe, es hilft allen.

1. Vergleich der HTTP-Ausgabe mit und ohne Komprimierung

201633154618959.jpg (447×226)

2. Aktivieren Sie gzip

Verwenden Sie das Apache mod_deflate-Modul, um gzip zu aktivieren
Aktivierungsmethode:

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

Schließmethode:

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

3. Die Einstellungen erfordern die gzip-Komprimierung Der Ausgabetyp

Der Ausgabetyp von JSON ist application/json, daher können Sie ihn wie folgt festlegen:

zu 7b799fe73e35dcfdc019b13f54de80e5bb15ed4aadeed04b3991578461de0768 hinzufügen 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);
?>
Ausgabe vor dem Festlegen von gzip:


201633154714151.jpg (346×83)

Ausgabe nach dem Festlegen von gzip:


201633154732511.jpg (334×99)

4. Einzelne JSON-Ausgabe mit GZIP-Komprimierung

Nach dem Festlegen von AddOutputFilterByType DEFLATE application/json werden alle Datenausgaben im JSON-Format mit GZIP-Komprimierung ausgegeben.

Wenn Sie die gzip-Komprimierung nur für einen bestimmten JSON verwenden möchten und die anderen nicht benötigen, können Sie dies mit der Methode ob_start(); erreichen.

Zuerst ist es nicht erforderlich, AddOutputFilterByType festzulegen und dann ob_start('ob_gzhandler') am Anfang des Codes hinzuzufügen;

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

Verwandte Empfehlungen:

PHP-Array-Traversal-foreach-Syntaxstruktur und Beispiele

Zusammenfassung der PHP-Array-Sortiermethode

Eine kurze Analyse der JSON-Übertragung in PHP und JS

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie PHP die zurückgegebenen JSON-Daten komprimiert und mit gzip ausgibt. 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