Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Unterschiede zwischen den PHP-Komprimierungsfunktionen gzencode, gzdeflate und gzcompress
In diesem Artikel wird hauptsächlich die Komprimierungsfunktionsimplementierung von PHP vorgestellt: Die Unterschiede zwischen gzencode, gzdeflate und gzcompress. Freunde in Not können sich darauf beziehen. Ich hoffe, es hilft allen.
•gzencode verwendet standardmäßig die ZLIB_ENCODING_GZIP-Kodierung und das gzip-Komprimierungsformat. Es verwendet tatsächlich den defalte-Algorithmus zum Komprimieren von Daten und fügt dann Dateiheader und Adler32-Überprüfung hinzu.
•gzdeflate verwendet standardmäßig die ZLIB_ENCODING_RAW-Kodierung und verwendet deflate Der Komprimierungsalgorithmus verwendet tatsächlich zuerst die LZ77-Komprimierung und dann die Huffman-Codierung zum Komprimieren Header und CRC-Korrektur werden hinzugefügt.
Aus der Dimension der Leistung: Deflate ist besser als gzip und besser als zlib
Aus der Dimension der Standardkomprimierungsrate der Textdatei nach der Komprimierung: Deflate ist besser als zlib und besser als gzip
Diese beiden Algorithmen sowie das Grafikformat PNG verwenden den Deflate-Algorithmus.
Der Deflate-Algorithmus ist ein verlustfreier Datenkomprimierungsalgorithmus, der sowohl den LZ77-Algorithmus als auch die Huffman-Codierung verwendet.
Es wurde ursprünglich von Phil Katz für Version 2 seines PKZIP-Archivierungstools und später in der RFC 1951-Spezifikation definiert.
Die Komprimierungsimplementierung von PHP basiert auf zlib, einer Funktionsbibliothek, die die Komprimierungsmethoden deflate, zlib und gzip bereitstellt.
Die oben genannten drei Funktionen, die wir verwenden: Wenn die Codierung in den Parametern auf dieselbe geändert wird und die Komprimierungsrate auf dieselbe eingestellt ist, wird letztendlich dieselbe Funktion aufgerufen, und der Effekt und die Leistung sind dieselben.
PHP definiert drei Konstanten:
#define PHP_ZLIB_ENCODING_RAW -0xf //deflate -15 #define PHP_ZLIB_ENCODING_GZIP 0x1f //gzip 15 + 16 #define PHP_ZLIB_ENCODING_DEFLATE 0x0f // zlib 15
Drei Funktionen können während des Aufrufvorgangs direkt verwendet werden Geben Sie die Codierung an, um andere Algorithmen zu verwenden:
zlib: ZLIB_ENCODING_DEFLATE gzip: ZLIB_ENCODING_GZIP deflate: ZLIB_ENCODING_RAWDiese drei Funktionen sind einfache Aufrufmethoden der drei Algorithmen, dargestellt mit besseren Namen. Die drei Funktionen können den gleichen Effekt erzielen, indem sie dieselbe Codierung angeben, und PHP stellt außerdem die Funktion zlib_encode als universelle Komprimierungsfunktion bereit.
Verwandte Empfehlungen:
Mehrere Methoden zur PHP-Komprimierung von Zeichenfolgen
PHP-Implementierungscode zum Komprimieren mehrerer CSS-Dateien
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Unterschiede zwischen den PHP-Komprimierungsfunktionen gzencode, gzdeflate und gzcompress. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!