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