Attache un filtre à un flux en fin de liste

# stream_filter_append

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

stream_filter_append — Attache un filtre à un flux en fin de liste

### Description

function stream_filter_append(
resource `$stream`,
string `$filter_name`,
int `$mode` = ?,
mixed `$params` = ?
): resource

stream_filter_append() ajoute le filtre `filter_name` à la liste de filtres attachés au flux `stream`.

### Liste de paramètres

`stream`

  Le flux cible.

`filter_name`

  Le nom du filtre.

`mode`

  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 d'écriture si le fichier a été ouvert en mode écriture (`w`, `a` et/ou `+`). `STREAM_FILTER_READ`, `STREAM_FILTER_WRITE`, et/ou `STREAM_FILTER_ALL` peuvent aussi être utilisées dans le paramètre `mode` 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, utiliser 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 `filter_name` ne peut être atteint.

### 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 une simple chaîne dans le fichier, elle 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 état d'origine */
    fpassthru($fp);

    fclose($fp);

    /* Résultat attendu
       ----------------

    Guvf vf n grfg

    */
    ?>

### Notes

> Note: Quand on utilise des filtres personnalisés
> stream_filter_register() doit être appelée avant stream_filter_append() pour enregistrer le filtre sous le nom de `filter_name`.

> 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 filtre sont créées. stream_filter_append() doit être appelée deux fois avec `STREAM_FILTER_READ` et `STREAM_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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open