Comme pour les filtres de chaîne de caractères, les filtres de conversion font ce que leur nom indique. Pour plus d'informations sur un filtre donné, se référer à la page du manuel de la fonction correspondante.
L'utilisation de ce filtre est équivalente à traiter toutes les données
du flux à travers les fonctions base64_encode() et
base64_decode() respectivement.
convert.base64-encode
supporte les paramètres sous forme
de tableau associatif. Si line-length
est fourni,
la sortie base64 sera séparée en lignes de line-length
caractères. Si line-break-chars
est fourni, chaque
bloc de caractères sera délimité par le caractère fourni. Ces paramètres
donnent le même effet que la fonction base64_encode()
utilisée conjointement avec chunk_split().
Exemple #1 convert.base64-encode & convert.base64-decode
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode');
fwrite($fp, "This is a test.\n");
fclose($fp);
/* affiche : VGhpcyBpcyBhIHRlc3QuCg== */
$param = array('line-length' => 8, 'line-break-chars' => "\r\n");
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-encode', STREAM_FILTER_WRITE, $param);
fwrite($fp, "This is a test.\n");
fclose($fp);
/* affiche : VGhpcyBp
: cyBhIHRl
: c3QuCg== */
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* affiche : This is a test. */
?>
L'utilisation de la version decode ce filtre est équivalente à traiter toutes
les données du flux à travers la fonction
quoted_printable_decode(). Il n'y a pas d'équivalent
fonctionnel à convert.quoted-printable-encode
.
convert.quoted-printable-encode
supporte les paramètres
sous forme de tableau associatif. En plus des paramètres supportés par
convert.base64-encode
, convert.quoted-printable-encode
accepte aussi les arguments booléen binary
et
force-encode-first
.
convert.base64-decode
supporte uniquement le paramètre
line-break-chars
en tant qu'indicateur de type pour
l'extraction de la charge codée.
Exemple #2 convert.quoted-printable-encode & convert.quoted-printable-decode
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.quoted-printable-encode');
fwrite($fp, "This is a test.\n");
/* affiche : =This is a test.=0A */
?>
Les filtres convert.iconv.*
sont disponibles, si le support
de iconv est activé, et leurs usages sont
équivalents à traiter toutes les données du flux avec iconv().
Ces filtres ne supportent pas de paramètres, mais s'attendent à la place à ce que
le nom du filtre contienne l'encodage des données en saisie et de sortie, c.à.d.
convert.iconv.<input-encoding>.<output-encoding>
ou
convert.iconv.<input-encoding>/<output-encoding>
(les deux notations sont sémantiquement équivalentes).
Exemple #3 convert.iconv.*
<?php
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.iconv.utf-16le.utf-8');
fwrite($fp, "T\0h\0i\0s\0 \0i\0s\0 \0a\0 \0t\0e\0s\0t\0.\0\n\0");
fclose($fp);
/* Outputs: This is a test. */
?>