Lista de Filtros Disponíveis
Índice
A seguir está uma lista de alguns filtros built-in de stream para o uso com stream_filter_append(). Sua versão de PHP pode ter mais filtros (ou menos) que os listados aqui.
Vale reparar que existe uma leve assimetria entre stream_filter_append() e stream_filter_prepend() Toda stream no PHP contem um pequeno buffer de leitura onde ele guarda blocos de dados recuperados do sistema de arquivo ou outro recurso (resource) com o propósito de processar dados da maneira mais eficiente. Assim que os dados são puxados do recurso para o buffer interno da stream, eles são processados imediatamente por qualquer filtro anexo caso a aplicação PHP esteja preparada ou não para receber os dados. Se os dados estão esperando no buffer de leitura quando o filtro for appended, esses dados serão imediatamente processados através daquele buffer, fazendo o fato de que eles estavam esperando num buffer transparente. No entanto, se os dados estão esperando no buffer de leitura quando um filtro é prepended, esses dados NÃO serão processados pelo filtro. Ao invés disso, eles esperarão até o próximo bloco de dados ser recuperado do recurso.
Para uma lista dos filtros instalados na sua versão do PHP use stream_get_filters().
Filtros de String
Cada um dos filtros faz precisamente o que o seu nome implica e corresponde ao comportamente da função de manuseio de string homônima. Para mais informação em um dado filtro, veja a página do manual para a função correspondente.
string.rot13 (since PHP 4.3.0) Uso desse filtro é equivalente a processar todos os dados da stream com a função str_rot13().
Example#1 string.rot13
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.rot13');
fwrite($fp, "This is a test.\n");
/* Outputs: Guvf vf n grfg. */
?>
string.toupper (since PHP 5.0.0) Uso desse filtro é equivalente a processar todos os dados da stream com a função strtoupper().
Example#2 string.toupper
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.toupper');
fwrite($fp, "This is a test.\n");
/* Outputs: THIS IS A TEST. */
?>
string.tolower (since PHP 5.0.0) Uso desse filtro é equivalente a processar todos os dados da stream com a função strtolower().
Example#3 string.tolower
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.tolower');
fwrite($fp, "This is a test.\n");
/* Outputs: this is a test. */
?>
string.strip_tags (since PHP 5.0.0) Uso desse filtro é equivalente a processar todos os dados da stream com a função strip_tags(). Ela aceita parâmetros em uma das duas formas: Ou como uma string contendo uma lista de tags similares ao segundo parâmetro da função strip_tags(), ou como um array dos nomes das tags.
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>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs: <b>bolded text</b> enlarged to a level 1 heading */
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.strip_tags', STREAM_FILTER_WRITE, array('b','i','u'));
fwrite($fp, "<b>bolded text</b> enlarged to a <h1>level 1 heading</h1>\n");
fclose($fp);
/* Outputs: <b>bolded text</b> enlarged to a level 1 heading */
?>