PHP Manuál | ||
---|---|---|
Predchádzajúci | Dodatok M. Zoznam dostupných filtrov | Nasledujúci |
Zatiaľ čo oddiel nazvaná Prúdy Kompresie v Dodatok L poskytujú spôsob tvorby gzip a bz2 kompatibilných súborov na miestnom filesystéme, neposkytujú spôsob pre zovšeobecnenú kompresiu cez prúdy siete, neposkytujú ani spôsob na začatie s nekompresným prúdom a tranzíciu ku kompresnému prúdu. Pre toto môže byť kompresný filter aplikovaný na hocaký zdroj prúdu kedykoľvek.
Poznámka: Kompresné filtre negenerujú hlavičky a päty používané commandline utilitami ako gzip. Iba komprimujú a dekomprimujú payload porcie kompresovaných dátových prúdov.
zlib.deflate (kompresia) a zlib.inflate (dekompresia) sú implementácie kompresných metód popísaných v RFC 1951. Filter deflate berie až tri parametre poslané ako asociatívne pole. level popisuje, akú kompresnú silu použiť (1-9). Vyššie číslo všeobecne zabezpečí menšie payloady za cenu dodatočného času spracovania. Tiež existujú dva špeciálne kompresné levely: 0 (pre žiadnu kompresiu) a -1 (zlib vnútorný default -- momentálne 6). window je base-2 log loopback veľkosti window kompresie. Vyššie hodnoty (až 15 -- 32768 bytov) zabezpečia lepšiu kompresiu za cenu pamäte, zatiaľčo nižšie hodnoty (až po 9 -- 512 bytov) zabezpečia horšiu kompresiu v menšej tlačovej stope pamäte. Východzia veľkosť window je momentálne 15. memory je škála indikujúca koľko pracovnej pamäte by sa malo alokovať. Platný rozsah hodnôt od 1 (minimálna alokácia) do 9 (maximálna alokácia). Táto alokácia pamäte ovplyvňuje iba rýchlosť a neovplynňuje veľkosť generovaného payloadu.
Poznámka: Pretože kompresný level je najbežnejšie používaný parameter, alternatívne môže byť poskytnutý ako jednoduchá hodnota integer (než prvok poľa).
Poznámka: Filtre zlib.* nie sú momentálne zabudované do PHP jadra. Pre povolenie týchto filtrov v PHP 5, nainštalujte balík zlib_filter z PECL. Tieto filtre nie sú dostupné pre PHP 4.
Príklad M-8. zlib.deflate jednoduchý
|
bzip2.compress a bzip2.decompress fungujú rovnakým spôsobom ako zlib filtre popísané vyššie. Filter bzip2.compress akceptuje až dva parameter dané ako prvky asociatívneho poľa: blocks je integer hodnota od 1 do 9 určujúca počet 100kbytových blokov pamäte na alokovanie pre workspace. work je tiež integer hodnota o rozsahu od 0 do 250 indukujúca koľko snahy treba vynaložiť pomocou normálnej kompresnej metódy pred prechodom na pomalšiu, ale spoľahlivejšiu metódu. Ladenie tohto parametra ovplyvňuje iba kompresnú rýchlosť. Ani veľkosť kompresného výstupu ani využitie pamäte nie sú týmto nastavením zmenené. Pracovný faktor 0 nariaďuje bzip knižnici použiť vnútorný default. Filter bzip2.decompress akceptuje iba jedej parameter, ktorý môže byť poslaný buď ako bežná hodnota boolean alebo ako prvok small asociatívneho poľa. small, ak je nastavený na TRUE hodnotu, nariaďuje bzip knižnici na vykonanie dekompresie v minimálnej tlačovej stope pamäte za cenu rýchlosti.
Poznámka: Filtre bzip2.* nie sú momentálne zabudované do PHP jadra. Pre povolenie týchto filtrov v PHP 5, naištalujte balík bz2_filter z PECL. Tieto filtre nie sú dostupné pre PHP 4.
Príklad M-9. bzip2.compress a bzip2.decompress
|
Predchádzajúci | Domov | Nasledujúci |
Konverzné filtre | Hore | Zoznam Podporovaných Prenosov Soketu |