stream_filter_append
(PHP 4 >= 4.3.0, PHP 5)
stream_filter_append — Enlaza un filtro a un flujo
Descripción
$stream
, string $filtername
[, int $read_write
[, mixed $params
]] )
Añade filtername a la lista de filtros
enlazados a stream.
Parámetros
-
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/oSTREAM_FILTER_ALLtambién se pueden pasar al parámetroread_writepara sobrescribir este comportamiento. -
params -
Este filtro será añadido con los parámetros
paramsespecificados 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().
Valores devueltos
Devuelve un recurso que puede ser usado para hacer referencia a esta instancia de filtro durante una llamada a stream_filter_remove().
Historial de cambios
| 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.
|
Ejemplos
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
*/
?>
Notas
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_READySTREAM_FILTER_WRITEpara obtener ambos recursos del filtro.
Ver también
- stream_filter_register() - Registrar un filtro de flujo definido por el usuario
- stream_filter_prepend() - Adjunta un filtro a un flujo
- stream_get_filters() - Recuperar la lista de los filtros registrados