Websiteentwicklung: PHP: Gzip-Komprimierung

Aus Wikibooks

Wozu das Ganze?[Bearbeiten]

Um Webseiten schneller laden zu lassen gibt es verschiedene Möglichkeiten. Eine davon ist die Komprimierung mittels Gzip. Dieses Verfahren beherrschen alle gängigen Browser ohne Probleme. Dabei wird die gesamte Seite bevor sie zum Benutzer geschickt wird auf dem Server komprimiert und dann im komprimierten Zustand an den Benutzer gesendet. Dabei kann die Datenmenge die gesendet werden muss um einiges verringert werden. Google empfiehlt in seinen Regeln für schnelle Webseiten, dass man seine Seite per Gzip komprimiert senden sollte. Doch so wie jedes andere auch, hat auch dieses Verfahren seine Nachteile. Durch die Komprimierung auf dem Server und das Entpacken beim Benutzer wird bei beiden mehr CPU beansprucht. Die Gzip Komprimierung kann entweder über die Konfigurationsdateien ihres Web-Servers (z.b. Apache) oder über eine Funktion in PHP aktiviert werden. Falls sie keinen Zugriff haben auf die Konfigurationsdateien (z.b. bei Webhosting Lösungen) bleibt nur die Möglichkeit über PHP.

Komprimierung in PHP[Bearbeiten]

Wie aktiviert man die Komprimierung mittels PHP?

<?php
if(!ob_start("ob_gzhandler")) ob_start();

//hier der GANZE Code

ob_end_flush();
?>

Wichtig hierbei ist, dass der Befehl "ob_start()" in der 1. Zeile ausgeführt wird. Dadurch wird wirklich alles per Gzip komprimiert an den Benutzer geschickt. Sollte der Benutzer kein Gzip unterstützen (bei sehr alten Browsern der Fall) wird automatisch die normale "Output Buffering" Methode angewandt, bei der die ganze Ausgabe am Ende gesammelt (unkomprimiert) gesendet wird.