GZip, ich verstehe gar nichts mehr
Sam
- php
Moin
mein Gzip sieht so aus:
am Anfang der Datei: ob_start('ob_gzhandler');
am Ende der Datei: ob_end_flush();
Funktioniert prächtig. Jetzt lese ich allerdings auf den verschiedensten Seiten verschiedenste Möglichkeiten für GZip Komprimierung und kenne mich jetzt nicht mehr aus was denn nun richtig ist. Auf den einen Seiten reicht das bisschen Code, das ich verwende. Auf anderen gibts wiederum reisige Codestücke, die man angeblich braucht um zu prüfen ob der Browser das unterstützt und um Speicher zu füllen und zu leeren blablabla.
ich weiß mittlerweile nicht mehr was denn nun richtig ist. Kann mir bitte jemand helfen? Ich möchte, dass meine GZip Funktion auf fast allen möglichen Servern läuft, also dass ich bei einem Wechsel oder wenn ich das Programm jemand anderen gebe, nichts mehr geändert werden muss. Bin euch echt für jeden handfesten Hinweis dankbar.
Gruß, Sam
Hi!
am Anfang der Datei: ob_start('ob_gzhandler');
am Ende der Datei: ob_end_flush();
die 2. Zeile brauchst Du nicht, weil das automatisch passiert.
Funktioniert prächtig. Jetzt lese ich allerdings auf den verschiedensten Seiten verschiedenste Möglichkeiten für GZip Komprimierung und kenne mich jetzt nicht mehr aus was denn nun richtig ist.
Es geht Dir darum die HTML-Ausgabe Deine PHP-Scripte zu komprimieren, ja?
Dann sollte Deine obige Version normalerweise wunderbar funktionieren.
Auf den einen Seiten reicht das bisschen Code, das ich verwende. Auf anderen gibts wiederum reisige Codestücke, die man angeblich braucht um zu prüfen ob der Browser das unterstützt und um Speicher zu füllen und zu leeren blablabla.
Das macht PHP automatisch.
Siehe Doku: http://de3.php.net/manual/de/function.ob-gzhandler.php
ob_gzhandler() is intended to be used as a callback function for
ob_start() to help facilitate sending gz-encoded data to web browsers
that support compressed web pages. Before ob_gzhandler() actually
sends compressed data, it determines what type of content encoding the
browser will accept ("gzip", "deflate" or none at all) and will return
its output accordingly. All browsers are supported since it's up to
the browser to send the correct header saying that it accepts
compressed web pages.
Grüße
Andreas
Hi Andreas!
ist das auch okay wenn ich das nur in die php.ini schreibe, oder findet dann keine Überprüfung mehr statt?
MFG
fuboly
Hi!
ist das auch okay wenn ich das nur in die php.ini schreibe, oder findet dann keine Überprüfung mehr statt?
Was schreibst Du in die php.ini?
Unter [link.http://de3.php.net/manual/de/function.ob-gzhandler.php] steht als Anmerkung:
You cannot use both ob_gzhandler() and ini.zlib.output_compression.
Also note that using ini.zlib.output_compression is preferred over
ob_gzhandler().
ini.zlib.output_compression = On
ist demnach also sowieso die bessere Idee, nur hat nicht jeder diese Möglichkeit hierzu.
Aber auch hier lohnt ein Blick ins (englische!) Manual: http://de3.php.net/manual/en/ref.zlib.php#ini.zlib.output-compression
zlib.output_compression boolean/integer
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.
Grüße
Andreas
Das ist toll, also noch einfacher :) Weiß nicht warum dann manche so umständlichen Code schreiben.
Und belastet GZip den Server eigentlich sehr? Zb. wenn ein paar 100 Leute zugleich auf der Seite sind?
Hallo Andreas,
so einfach ist es nicht. Browser haben die unangenehme Eigenschaft zu lügen. Siehe auch
<http://www.schroepl.net/projekte/mod_gzip/
Grüße,
CK
Hallo Christian!
so einfach ist es nicht. Browser haben die unangenehme Eigenschaft zu lügen. Siehe auch
Du wirst es kaum glauben, aber ich hatte wirklich dran gedacht http://www.schroepl.net/projekte/mod_gzip/browser.htm zu posten, aber eigentlich halte ich diese Probleme in diesem Zusammenhang nicht mehr für so wichtig. Das einzige wirklich unangenehmere Problem in diesem Zusammenhang hat mir bisher IE5.0 SP4 bereitet, denn dieser bringt es fertig bei einer auf diese Weise komprimierten HTML-Seite nur den halben Quelltext zu verarbeitrn und dann mit unbekanntem Fehler abzubrechen.
Viele Grüße
Andreas