Forum und email
Seznam dostupných filtrů

Příloha O. Seznam dostupných filtrů

Toto je seznam několika vestavěných streamových filtrů pro použití s stream_filter_append(). Vaše verze PHP může obsahovat více (nebo méně) filtrů, než je zde uvedeno.

Stojí za to připomenout lehkou asymetrii mezi stream_filter_append() a stream_filter_prepend(). Každý PHP stream obsahuje malý buffer pro čtení, kam se ukládají bloky dat přečtených ze souborového systému nebo jiného prostředku kvůli co nejefektivnějšímu zpracování. Ihned poté, co jsou data načtena ze zdroje do vnitřního bufferu streamu, jsou zpracována všemi přiřazenými filtry, ať už je PHP aplikace aktuálně připravena je přijmout či nikoli. Pokud jsou v bufferu data v okamžiku, kdy je připojen nový filtr, tato data se ve filtru okamžitě zpracují, takže jejich uložení v bufferu zdá transparentní. Pokud jsou však v bufferu data a nový filtr je předřazen, data v bufferu se tímto filtrem nezpracují. Místo toho se čeká, až se bude načítat ze zdroje další blok dat.

K získání seznamu filtrů instalovaných ve vaší verzi PHP použijte funkci stream_get_filters().

Řetězcové filtry

Každý z těchto filtrů dělá přesně to, co vyplývá z jeho názvu a koresponduje s chováním funkcí pro zpracování řetězců, které jsou vestavěny v PHP. Pro více informací o daném filtru se podívejte na manuálovou stránku odpovídající funkce.

string.rot13 (od PHP 4.3.0) Použití tohoto filtru je ekvivalentní zpracování veškerých dat ze streamu funkcí str_rot13().

Příklad O-1. string.rot13

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Vypíše:  Guvf vf n grfg.   */
?>

string.toupper (od PHP 5.0.0) Použití tohoto filtru je ekvivalentní zpracování veškerých dat ze streamu funkcí strtoupper().

Příklad O-2. string.toupper

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "Toto je test.\n");
/* Vypíše:  TOTO JE TEST.   */
?>

string.tolower (od PHP 5.0.0) Použití tohoto filtru je ekvivalentní zpracování veškerých dat ze streamu funkcí strtolower().

Příklad O-3. string.tolower

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "Toto je test.\n");
/* Vypíše:  toto je test.   */
?>

string.strip_tags (od PHP 5.0.0) Použití tohoto filtru je ekvivalentní zpracování veškerých dat ze streamu funkcí strip_tags(). Přijímí parametry v jedné ze dvou forem: Buď jako řetězec obsahující seznam značek podobný druhému parametru funkce strip_tags(), anebo jako pole názvů značek.

Příklad O-4. string.strip_tags

<?php
$fp
= fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, "<b><i><u>");
fwrite($fp, "<b>tučný text</b> se zvětší na <h1>nadpis úrovně 1</h1>\n");
fclose($fp);
/* Vypíše:  <b>tučný text</b> se zvětší na nadpis úrovně 1   */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>tučný text</b> se zvětší na <h1>nadpis úrovně 1</h1>\n");
fclose($fp);
/* Vypíše:  <b>tučný text</b> se zvětší na nadpis úrovně 1   */
?>