(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
stream_filter_append — Enlaza un filtro a un flujo
$stream
,$filtername
,$read_write
= ?,$params
= ? Añade un nombre de filtro dado por filtername
a la lista de filtros adjuntos a stream
.
stream
El flujo objetivo.
filtername
El nombre del filtro.
read_write
Por omisión, stream_filter_append() enlazará el filtro a la cadena de filtros de lectura
si el archivo fue abierto para lectura (esto es, Modo de Archivo: r
, y/o +
). El filtro también será enlazado a la cadena de filtros de escritura
si el archivo fue abierto para escritura (esto es, Modo de Archivo: w
, a
, y/o +
). STREAM_FILTER_READ
, STREAM_FILTER_WRITE
, y/o STREAM_FILTER_ALL
también se pueden pasar al parámetro read_write
para sobrescribir este comportamiento.
params
Este filtro será añadido con los parámetros params
especificados al final de la lista y por lo tanto será llamado el último durante las operaciones de flujo. Para añadir un filtro al principio de la lista use stream_filter_prepend().
Devuelve un recurso en caso de éxito o false
en caso de fallo. El recurso se puede emplear para referirse a esta instnacia del filtro durante una llamada a stream_filter_remove().
Se devuelve false
si stream
no es un recurso o si filtername
no se puede localizar.
Versión | Descripción |
---|---|
5.1.0 | Antes de PHP 5.1.0, esta función devolvía true si se tuvo éxito o false en caso de error. |
Ejemplo #1 Controlar dónde son aplicados los filtros
<?php
$fp = fopen('prueba.txt', 'w+');
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "Esto es una prueba\n");
rewind($fp);
fpassthru($fp);
fclose($fp);
?>
Nota: Cuando se usan filtros personalizos (de usuario)
stream_filter_register() debe llamarse primero para registrar el filtro de usuario deseado enfiltername
.
Nota: La información del flujo se lee desde recursos (locales y remotos) en trozos, con cualquier información sin consumir guardada en bufferes internos. Cuando un nuevo filtro se añade a un flujo, la información en los bufferes internos se procesa a través del nuevo filtro en ese momento. Esto difiere del comportamiento de stream_filter_prepend().
Nota: Cuando un filtro se añade para lectura y escritura, se crean dos instancias del filtro. stream_filter_append() se debe llamar dos veces con
STREAM_FILTER_READ
ySTREAM_FILTER_WRITE
para obtener ambos recursos del filtro.