Description
resource
stream_filter_append ( resource stream, string filtername [, int read_write [, mixed params]] )
stream_filter_append() ajoute le filtre
filtername à la liste de filtres attachés au
flux stream. Ce filtre sera ajouté avec
les paramètres spécifiés dans params
à la fin de cette liste et sera donc
appelé en dernier durant les opérations de flux.
Pour ajouter un filtre au début de la liste, utilisez
la fonction stream_filter_prepend().
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. Voyez la fonction
stream_filter_append() pour un exemple de l'utilisation
de ce paramètre.
Depuis PHP 5.0.1, cette fonction retourne une ressource qui peut être utilisée
pour se référer à cette instance de filtre durant l'appel à la fonction
stream_filter_remove().
Dans les versions antérieures à PHP 5.1.0, cette fonction retourne FALSE
en cas de succès, FALSE sinon.
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
*/ ?>
|
|
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 de filtername.
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().
Voir aussi
stream_filter_register(),
stream_filter_prepend() et
stream_get_filters().