stream_filter_append

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

stream_filter_appendAnexa um filtro a um fluxo

Descrição

stream_filter_append(
    resource $stream,
    string $filtername,
    int $read_write = ?,
    mixed $params = ?
): resource

Adiciona o nome do filtro filtername à lista de filtros anexados ao fluxo stream.

Parâmetros

stream

O fluxo alvo.

filtername

O nome do filtro.

read_write

Por padrão, stream_filter_append() irá anexar o filtro à cadeia de filtros de leitura se o arquivo foi aberto para leitura (isto é, modo de arquivo: r e/ou +). O filtro também será anexado à cadeia de filtros de escrita se o arquivo foi aberto para escrita (isto é, modo de arquivo: w, a e/ou +). As constantes STREAM_FILTER_READ, STREAM_FILTER_WRITE e/ou STREAM_FILTER_ALL também podem ser passadas ao parâmetro read_write para substituir este comportamento.

params

Este filtro será adicionado com os parâmetros especificados em params ao final da lista e portanto serão chamados por último durante operações de fluxo. Para adicionar um filtro ao início da lista, use stream_filter_prepend().

Valor Retornado

Retorna um recurso em caso de sucesso ou false em caso de falha. O recurso pode ser usado para se referir a este instância de filtro durante a chamada a stream_filter_remove().

false é retornado se o parâmetro stream não for um recurso ou se o nome do filtro filtername não puder ser localizado.

Exemplos

Example #1 Controlando onde os filtros são aplicados

<?php
/* Abre um arquivo de teste para leitura e escrita */
$fp = fopen('test.txt', 'w+');

/* Applica o filtro ROT13 à
 * cadeia de filtros de escrita, mas não à
 * cadeia de filtros de leitura */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);

/* Escreve uma string simples ao arquivo
 * que será transformado através do ROT13 na
 * saída */
fwrite($fp, "This is a test\n");

/* Retrocede ao início do arquivo */
rewind($fp);

/* Lê de volta o conteúdo do arquivo.
 * Se o filtro tivesse sido aplicado também
 * à cadeia de filtros de leitura, seria visto o texto
 * com o filtro ROT13 reaplicado, de volta a seu estado original */
fpassthru($fp);

fclose($fp);

/* Expected Output
   ---------------

Guvf vf n grfg

 */
?>

Notas

Note: Usando filtros personalizados (do usuário)
stream_filter_register() deve ser chamado em primeiro lugar de maneira a registrar o filtro de usuário desejado para o valor de filtername.

Note: Dados de fluxo são lidos dos recursos (tanto locais quanto remotos) em partes, com quaisquer dados não consumidos mantidos em buffers internos. Quando um novo filtro é anexado a um fluxo, dados no buffer interno são processados através do novo filtro neste momento. Isto difere do comportamento de stream_filter_prepend().

Note: Quando um filtro é adicionado para leitura e escrita, duas instâncias do filtro são criadas. stream_filter_append() deve ser chamada duas vezes com STREAM_FILTER_READ e STREAM_FILTER_WRITE para obter ambos os recursos de filtro.

Veja Também