stream_filter_append

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

stream_filter_appendEnlaza un filtro a un flujo

Descripción

stream_filter_append(
    resource $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.

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/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().

Valores devueltos

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.

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 en filtername.

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 y STREAM_FILTER_WRITE para obtener ambos recursos del filtro.

Ver también