(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. 
   
streamLe flux cible.
filternameLe 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+');
/* On applique le filtre ROT13 au flux d'écriture, mais pas à
 * celui de lecture */
stream_filter_append($fp, "string.rot13", STREAM_FILTER_WRITE);
/* On ajoute un simple chaîne dans le fichier, il sera
 * transformé par ROT13 à l'écriture */
fwrite($fp, "Ceci est un test\n");
/* On revient au début du fichier */
rewind($fp);
/* On lit le contenu du fichier.
 * Si on appliquait le filtre ROT13 nous aurions la
 * chaîne dans son étât d'origine */
fpassthru($fp);
fclose($fp);
/* Résultat attendu
   ----------------
Guvf vf n grfg
*/
?>
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_READetSTREAM_FILTER_WRITEpour obtenir les ressources de filtres.