(PHP 4 >= 4.3.0, PHP 5, PHP 7)
stream_filter_append — Enlaza un filtro a un flujo
$stream
, string $filtername
[, int $read_write
[, mixed $params
]] ) : resource
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
/* Abrir un archivo de prueba para lectura y escritura */
$fp = fopen('prueba.txt', 'w+');
/* Aplicar el filtro ROT13 filter a la
* cadena de filtros de escritura, pero no a la
* cadena de filtros de lectura */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
/* Escribir una cadena sencilla al archivo
* será ROT13 transformado a la
* salida */
fwrite($fp, "Esto es una prueba\n");
/* Retroceder al principio del archivo */
rewind($fp);
/* Leer el contenido del archivo desde atrás.
* Si el filtro ha sido aplicado a la
* cadena de filtros de lectura veríamos
* el texto con el filtro ROT13 deshecho a su estado original */
fpassthru($fp);
fclose($fp);
/* Salida esperada
---------------
Rfgb rf han cehron
*/
?>
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.