CXI. Zlib Komprimierungsfunktionen
Diese Extension nutzt die Funktionen der zlib von Jean-loup Gailly und Mark Adler
um transparent gzip (.gz) - komprimierte Dateien lesen und
schreiben zu können. Es muß die zlib >= 1.0.9 verwendet werden,
um die Funktionen nutzen zu können.
Diese Extension beinhaltet Versionen der meisten Dateisystem-Funktionen, die mit
gzip-komprimierten (und nicht komprimierten) Datein, jedoch nicht
mit Sockets funktionieren.
Anmerkung:
Mit Version 4.0.4 wurde ein fopen-wrapper für .gz-Dateien
eingeführt, so das eine spezielle 'zlib:'-URL verwendet werden kann,
um komprimierte Datei transparent über die f*()-Dateifunktionen
genutzt werden können.
In Version 4.3.0 wurde diese spezielle Prefix in zlib:// geändert,
um Konflikte mit Dateinamen zu vermeiden die ':' enthalten.
Dieses Feature erfordert eine C-Laufzeitbibliothek, die
die fopencookie()-Funktion bereitstellt. Nach
aktuellem Stand ist die GNU libc die einzige Bibliothek, die dieses
Feature bereitstellt.
Code-Beispiel
Öffnet eine temporäre Datei und schreibt einen Test-String in die
Datei, dann wird der Inhalt dieser Datei zweimal ausgegeben.
Beispiel 1. Zlib Beispiel <?php
$filename = tempnam ('/tmp', 'zlibtest').'.gz';
print "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";
// Öffne eine Datei zum Schreibzugriff mit der maximalen Kompressionsstufe
$zp = gzopen($filename, "w9");
// Schreibe den String in die Datei
gzwrite($zp, $s);
// Schließe die Datei
gzclose($zp);
// Öffne die Datei zum Lesezugriff
$zp = gzopen($filename, "r");
// Lese 3 Zeichen
print gzread($zp, 3);
// Gebe den Inhalt aus, bis die Datei vollständig ausgegeben ist.
gzpassthru($zp);
print "\n";
// Öffne die Datei und gebe den Inhalt zum zweiten Mal aus
if (readgzfile($filename) != strlen($s)) {
echo "Fehler in den Zlib-Funktionen!";
}
unlink($filename);
print "</pre>\n</h1></body>\n</html>\n";
?> |
|
- Inhaltsverzeichnis
- gzclose -- Close an open gz-file pointer
- gzcompress -- Compress a string
- gzdeflate -- Deflate a string
- gzencode -- Create a gzip compressed string
- gzeof -- Test for end-of-file on a gz-file pointer
- gzfile -- Read entire gz-file into an array
- gzgetc -- Get character from gz-file pointer
- gzgets -- Get line from file pointer
- gzgetss --
Get line from gz-file pointer and strip HTML tags
- gzinflate -- Inflate a deflated string
- gzopen -- Open gz-file
- gzpassthru --
Output all remaining data on a gz-file pointer
- gzputs -- Write to a gz-file pointer
- gzread -- Binary-safe gz-file read
- gzrewind -- Rewind the position of a gz-file pointer
- gzseek -- Seek on a gz-file pointer
- gztell -- Tell gz-file pointer read/write position
- gzuncompress -- Uncompress a deflated string
- gzwrite -- Binary-safe gz-file write
- readgzfile -- Output a gz-file