Dieses Modul gibt Ihnen die Möglichkeit, transparent gzip (.gz) -
komprimierte Dateien zu lesen und zu schreiben. Hierfür bietet diese
Erweiterung die Versionen der meisten Dateisystem-Funktionen, die mit
gzip-komprimierten (und unkomprimierten) Dateien, jedoch nicht mit
Sockets funktionieren.
Anmerkung:
Mit Version 4.0.4 wurde ein fopen-wrapper für .gz-Dateien eingeführt,
so dass Sie die spezielle zlib:-URL verwenden
können, um auf komprimierte Dateien transparent über die
f*()-Dateifunktionen zuzugreifen. Beim Aufruf von
fopen() müssen Sie dazu lediglich vor dem Dateinamen
das Präfix zlib: schreiben. Diese Möglichkeit
erfordert eine C-Laufzeitbibliothek, die die
fopencookie()-Funktion bereitstellt. Nach aktuellem
Stand scheint die GNU libc die einzige Bibliothek zu sein, die dieses
Feature bereitstellt.
In PHP 4.3.0 wurde zlib: in
compress.zlib:// geändert, um Konflikte mit
Dateinamen zu vermeiden die ':' Zeichen enthalten. Die
fopencookie() Funktion wird nicht mehr benötigt. Mehr
Information hierzu finden Sie im Abschnitt über
Abschnitt namens Compression Streams in Anhang N.
Diese Erweiterung nutzt die Funktionen der zlib-Bibliothek von Jean-loup Gailly und
Mark Adler. Sie benötigen zlib >= 1.0.9, um die Funktionen nutzen zu
können.
Die Unterstützung für Zlib ist in PHP nicht standardmäßig aktiviert. Es ist
erforderlich, die Option --with-zlib[=DIR]
beim Kompilieren von PHP anzugeben.
Die Windowsversion von PHP enthält diese
Erweiterung. Um diese Funktionen zu verwenden, müssen Sie keine zusätzlichen
Erweiterungen aktivieren.
Anmerkung:
Die integrierte Unterstützung für zlib in der Windowsversion steht ab
PHP 4.3.0 zur Verfügung.
Das Verhalten dieser Funktionen wird
durch Einstellungen in der php.ini beeinflusst.
The zlib extension offers the option to transparently compress
your pages on-the-fly, if the requesting browser supports
this. Therefore there are three options in the configuration filephp.ini.
Tabelle 1. Zlib Configuration Options
Name
Default
Changeable
Changelog
zlib.output_compression
"0"
PHP_INI_ALL
Available since PHP 4.0.5.
zlib.output_compression_level
"-1"
PHP_INI_ALL
Available since PHP 4.3.0.
zlib.output_handler
""
PHP_INI_ALL
Available since PHP 4.3.0.
Weitere Details und die Definitionen der
PHP_INI_*-Konstanten finden Sie im Anhang H.
Hier eine kurze Erklärung der
Konfigurationsoptionen:
Whether to transparently compress pages. If this option is set
to "On" in php.ini or the Apache configuration, pages are
compressed if the browser sends an "Accept-Encoding: gzip" or
"deflate" header. "Content-Encoding: gzip" (respectively
"deflate") and "Vary: Accept-Encoding" headers are added to
the output.
In runtime, it can be set only before sending any output.
This option also accepts integer values instead of boolean
"On"/"Off", using this you can set the output buffer size
(default is 4KB).
Anmerkung: output_handler must be
empty if this is set 'On' ! Instead you must use zlib.output_handler.
You cannot specify additional output handlers if zlib.output_compression
is activated here. This setting does the same as
output_handler but in a different order.
Folgende Konstanten werden von dieser
Erweiterung definiert und stehen nur zur Verfügung, wenn die Erweiterung entweder
statisch in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.
// Temporäre Datei zum Schreiben mit der maximalen Kompressionsstufe öffnen $zp = gzopen($filename, "w9");
// String in die Datei schreiben gzwrite($zp, $s);
// Datei schließen gzclose($zp);
// Datei zum Lesen öffnen $zp = gzopen($filename, "r");
// 3 Zeichen ausgeben echo gzread($zp, 3);
// Inhalt der Datei ausgeben und die Datei schließen gzpassthru($zp); gzclose($zp);
echo "\n";
// Öffne die Datei und gib den Inhalt zum zweiten Mal aus if (readgzfile($filename) != strlen($s)) { echo "Error with zlib functions!"; } unlink($filename); echo "</pre>\n</body>\n</html>\n";
Dieses Tutorial beschreibt sehr gut die Wirkunsweise von objektorientiertes Programmieren. Also bestens geeignet um das objektorientierte Programmieren zu verstehen.
In mehreren Tutorials wird der Zugriff auf Facebook Daten mittels Graph API, FQL und REST API erklärt. Alle Codebeispiele liegen zum Ausprobieren in einem SVN, bzw. github Repository bereit.