stream_filter_append

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

stream_filter_appendAttache un filtre à un flux en fin de liste

Description

stream_filter_append ( resource $stream , string $filtername [, int $read_write [, mixed $params ]] ) : resource

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

Valeurs de retour

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.

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

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 et STREAM_FILTER_WRITE pour obtenir les ressources de filtres.

Voir aussi