array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'function.stream-filter-append.php', 1 => 'stream_filter_append', ), 'up' => array ( 0 => 'ref.stream.php', 1 => 'Funciones de Flujos', ), 'prev' => array ( 0 => 'function.stream-copy-to-stream.php', 1 => 'stream_copy_to_stream', ), 'next' => array ( 0 => 'function.stream-filter-prepend.php', 1 => 'stream_filter_prepend', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/stream/functions/stream-filter-append.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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
/* 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.