(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
stream_filter_append — Attache un filtre à un flux en fin de liste
$stream
,$filtername
,$read_write
= ?,$params
= ?stream_filter_append() ajoute le filtre filtername
à la liste de filtres attachés au flux stream
.
stream
Le flux cible.
filtername
Le nom du filtre.
read_write
Par défaut, stream_filter_append() va ajouter le filtre à la liste de filtres de lecture si le fichier a été ouvert en mode lecture (r
et/ou +
). Le filtre sera aussi attaché à la liste des filtres de lecture si le fichier a été ouvert en mode lecture (w
, a
et/ou +
). STREAM_FILTER_READ
, STREAM_FILTER_WRITE
, et/ou STREAM_FILTER_ALL
peuvent aussi être utilisées dans le paramètre read_write
pour contrôler ce comportement.
params
Ce filtre sera ajouté avec les paramètres params
à la fin de la liste des filtres, et sera ainsi appelé à la fin des opérations de filtres. Pour ajouter un filtre au début de la liste, utilisez la fonction stream_filter_prepend().
Retourne une ressource en cas de succès, ou false
si une erreur survient. La ressource peut être utilisée pour se référer à l'instance de ce filtre lors d'un appel à la fonction stream_filter_remove().
false
est retourné si stream
n'est pas une ressource ou si filtername
ne peut être atteint.
Exemple #1 Contrôler l'application des filtres
<?php
// Ouverture d'un fichier de test en lecture/écriture
$fp = fopen('test.txt', 'w+');
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
fwrite($fp, "Ceci est un test\n");
rewind($fp);
fpassthru($fp);
fclose($fp);
?>
Note: Quand vous utilisez des filtres personnalisés
stream_register_filter() doit être appelée avant stream_filter_append() pour enregistrer le filtre sous le nom defiltername
.
Note: Les données du flux (locales et distantes) sont retournées en morceaux, les données non acheminées étant conservées dans le tampon interne. Lorsqu'un nouveau filtre est ajouté à la fin du flux, les données dans le tampon interne sont passées dans le nouveau filtre à ce moment-là. Ceci est différent du comportement de stream_filter_prepend().
Note: Quand un filtre est ajouté pour la lecture et l'écriture, deux instances du filtres sont créées. stream_filter_prepend() doit être appelée deux fois avec
STREAM_FILTER_READ
etSTREAM_FILTER_WRITE
pour obtenir les ressources de filtres.