PHP Proxy - plug-in moduly
Název modulu: dividuums PHPgzip 0.1, autor: Florian Wesch.
Zatím jediný modul v této sekci, který lze velice snadno vložit
do každého skriptu. PHPgzip aplikuje kompresi na přenášená
data mezi serverem a klientem (browserem). Touto vlastností můžeme
urychlit stahování dat až o několik desítek procent (uvažujeme
formát text/html, u multimediálních souborů bude pochopitelně
toto procento mnohem menší). Nyní již k samotnému začlenění
do skriptu.
funkce gz_start(); |
|
Nejprve se otestuje, zda-li je vůbec možné podporu gzip komprese
využít (HTTP_ACCEPT_ENCODING). Následuje modifikace hlavičky (konkrétně
Content-Encoding: gzip), která bude později odeslána klientovi. Je
vhodné sdělit prohlížeči, jakým programem byla komprese provedena
(X-Compressed-by) - tento parametr však není nutností.
|
funkce gz_end(); |
|
Tato funkce je na mě poněkud složitější, slouží převážně k samotné kompresy
a vytvoření CRC kontrolního součtu přenášených dat. V proměnné $gzipheader
máme připravenou hlavičku odpovědi, $payload obsahuje zkomprimovaná data
(funkcí gzcompress). Mimo jiné si můžeme nechat zobrazit tzv. kompresní poměr,
který zobrazuje velikost dat před a po kompresy.
|
Příklad použití: <? include("phpgzip.php");
gz_start(); phpinfo(); gz_end(); ?>
Download zdrojového kódu je k dispozici zde.
Skript si můžete vyzkoušet na adrese http://milanc.host.sk/smartproxy/phpgzip.php.
|