phpbar.de logo

Mailinglisten-Archive

[php] output GZIP-encoding

[php] output GZIP-encoding

Stefan Roehrich php_(at)_phpcenter.de
Tue, 16 Jul 2002 18:58:30 +0200


Hallo!

On 2002-07-16 15:32:16, Kai Meder wrote:
> ich möchte den cache bzw. den output komprimiert ausgeben,

Was genau möchtest Du ausgeben? Soll der Output vom Client automatisch
dekomprimiert werden oder dient er als Datei zum Abspeichern?

> 1.) brauche ich den content-length header
> oder ist der seit einer der neueren php-versionen unnötig geworden ?

Content-Length ist davon unabhängig und wird nicht benötigt. Falls der
Output vom Client automatisch entkomprimiert werden soll, empfiehlt
sich das Setzen von zlib.output_compression in php.ini (geht nicht via
ini_set im Skript), das kümmert sich um die passenden
Content-Encoding-Header und macht das auch nur, wenn der Browser
behauptet, daß er es kann (via Accept-Encoding Header). Außerdem
erfordert es sonst keine Anpassungen.

> 2.) muss ich noch den gzip-header header ausgeben
> oder ist der auch unnötig geworden ?
> ( \x1f\x8b\x08\x00\x00\x00\x00\x00 )

Kommt wieder darauf an, was Du damit vorhast ;-).

Willst Du den Output z.B. mit einem eigenen PHP-Skript und den
zlib-Funktionen weiterverarbeiten, ist das nicht nötig, soll aber ein
"richtiges" .gz-File rauskommen, braucht man den Header. Oder man
verwendet gzencode(), das ergänzt schon von alleine den Header.
> 
> 3.) was ist mit der checksum und der grösse ?
> muss ich die nachwievor mit pack('V' , crc32($data))
> und pack('V' , strlen($data)) an den output mit dranhängen ?

gzencode() erledigt auch das, ansonsten Handarbeit, falls das benötigt
wird.

> fragen über fragen ... steht vll irgendwo in den change-logs
> der php-versionen was an den gz-algorithmen geändert wurde ?
> (habe da irgendwie nichts gefunden)

Was für eine Änderung suchst Du denn? Die eigentlichen Algorithmen
wurden nicht geändert, diese verwenden schon immer diese der
zlib-Library.

> noch eine frage, ich verstehe nicht ganz den unterschied zwischen
> FORCE_GZIP und FORCE_DEFLATE auf

Das sind zwei unterschiedliche Komprimierungsarten der zlib-Library,
für Details vgl. RFC 1950 und 1951.

> oder mir irgendwelche uris mit genauen infos über diesen
> gz-quatsch geben ...

Viel findet man auch auf der zlib-Homepage (PHP-unabhängig) unter
http://www.gzip.org/zlib/.

Tschüs
  Stefan

-- 
Stefan Röhrich               stefan_(at)_roehri.ch, sr_(at)_linux.de
                                 http://www.roehri.ch/~sr/


php::bar PHP Wiki   -   Listenarchive