stream_filter_append
(PHP 4 >= 4.3.0, PHP 5)
stream_filter_append — Attache un filtre à un flux en fin de liste
Description
$stream
, string $filtername
[, int $read_write
[, mixed $params
]] )
stream_filter_append() ajoute le filtre
filtername
à la liste de filtres attachés au
flux stream
.
Liste de paramètres
-
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/ouSTREAM_FILTER_ALL
peuvent aussi être utilisées dans le paramètreread_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().
Valeurs de retour
Retourne une ressource qui peut être utilisez pour identifier ce filtre lors de l'effacement du filtre avec stream_filter_remove().
Historique
Version | Description |
---|---|
5.1.0 |
Avant PHP 5.1.0, cette fonction retournait TRUE en
cas de succès ou FALSE si une erreur survient.
|
Exemples
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 */ ?>
Notes
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.
Voir aussi
- stream_filter_register() - Enregistre un filtre de flux
- stream_filter_prepend() - Attache un filtre à un flux en début de liste
- stream_get_filters() - Liste les filtres enregistrés