CXIII. 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 muss 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