Forum und email

Zoznam dostupných filtrov

Table of Contents

Následujúce je zoznam niekoľkých zabudovaných prúdových filtrov pre použitie s stream_filter_append(). Vaša verzia PHP môže mať viac filtrov (alebo menej) ako sú tie vymenované tu.

Oplatí sa upozorniť na miernu asymetriu medzi stream_filter_append() a stream_filter_prepend(). Každý PHP prúd obsahuje malý read buffer, kde ukladá bloky dát získané zo súborovného systému alebo iný zdroj, aby spracoval dáta čo najefektívnejšie. Akonáhle sa dáta posunú zo zdroja do vnútroného prúdu buffera, okamžite sa spracuje všetkými priloženými filtrami, či je PHP aplikácia pripravená pre dáta alebo nie. Ak sa dáta nachádzajú v read bufferi, keď je filter pripojený, tak sa tieto dáta okamžite spracujú cez ten buffer a fakt, že sa nachádzal v bufferi, sa zdá byť transparentný. Avšak, ak sa dáta nachádzajú v read bufferi, keď je filter pred-pojený, tieto dáta NEBUDÚ spracované cez ten filter. Namiesto toho bude čakať pokým sa získa ďalší blok dát zo zdroja.

Pre zoznam filtrov nainštalované vo vašej verzii PHP použite stream_get_filters().

Reťazcové Filtre

Každý z týchto filtrov robí presne to, čo ich názov implikuje a zodpovedá správaniu zabudovanej funkcii riadiacej reťazce. Viac informácii o danom filtri získate na strane manuálu pre zodpovedajúcu funkciu.

string.rot13 (od PHP 4.3.0) Použitie tohto filtra je ekvivalentný spracovaniu všetkých dát prúdu cez funkciu str_rot13().

Example#1 string.rot13

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.rot13');
fwrite($fp"Toto je test.\n");
/* Výstup je:  Guvf vf n grfg.   */
?>

string.toupper (od PHP 5.0.0) Použitie tohto filtra je ekvivalentné spracovaniu všetkých dát prúdu cez funkciu strtoupper().

Example#2 string.toupper

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.toupper');
fwrite($fp"Toto je test.\n");
/* Výstup je:  TOTO JE TEST.   */
?>

string.tolower (od PHP 5.0.0) Použitie tohto filtra je ekvivalentné spracovaniu všetkých dát prúdu cez funkciu strtolower().

Example#3 string.tolower

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'string.tolower');
fwrite($fp"Toto je test.\n");
/* Výstup je:  toto je test.   */
?>

string.strip_tags (od PHP 5.0.0) Použitie tohto filtra je ekvivalentné spracovaniu všetkých dát prúdu cez funkciu strip_tags(). Akceptuje parametre v jednej z dvoch foriem: Buď ako reťazec obsahujúci zoznam tagov podobný druhému parametru funkcie strip_tags() alebo ako pole názvov tagov.

Example#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>tucny text</b> zvacseny na <h1>level 1 nadpis</h1>\n");
fclose($fp);
/* Vystup je:  <b>tucny text</b> zvacseny na level 1 nadpis   */

$fp fopen('php://output''w');
stream_filter_append($fp'string.strip_tags'STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp"<b>tucny text</b> zvacseny na <h1>level 1 nadpis</h1>\n");
fclose($fp);
/* Vystup je:  <b>tucny text</b> zvacsneny na level 1 nadpis   */
?>