Wie die string.*-Filter führen auch die convert.*-Filter Aktionen aus, die ihren Namen entsprechen. Weitere Informationen zu einem bestimmten Filter sind auf der Handbuchseite für die entsprechende Funktion zu finden.
Die Verwendung dieser Filter entspricht der Verarbeitung aller
Stream-Daten mit den Funktionen base64_encode() und
base64_decode().
convert.base64-encode
unterstützt Parameter, die als
assoziatives Array übergeben werden. Wenn der Parameter
line-length
angegeben wird, wird die base64-Ausgabe
in Abschnitte von line-length
Zeichen aufgeteilt.
Wenn der Parameter line-break-chars
angegeben wird,
werden die einzelnen Teilstücke durch die angegebenen Zeichen getrennt.
Diese Parameter haben die gleiche Wirkung wie die Verwendung von
base64_encode() in Verbindung mit
chunk_split().
Beispiel #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);
/* Ausgabe: 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);
/* Ausgabe: VGhpcyBp
: cyBhIHRl
: c3QuCg== */
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* Ausgabe: This is a test. */
?>
Die Verwendung der Decode-Version dieses Filters entspricht der
Verarbeitung aller Stream-Daten mit der Funktion
quoted_printable_decode(). Es gibt keine Funktion, die
convert.quoted-printable-encode
entspricht.
convert.quoted-printable-encode
unterstützt Parameter,
die als assoziatives Array übergeben werden. Zusätzlich zu den Parametern,
die von convert.base64-encode
unterstützt werden,
unterstützt convert.quoted-printable-encode
auch die
booleschen Parameter binary
und
force-encode-first
.
convert.base64-decode
unterstützt nur den Parameter
line-break-chars
, der für die Zeilentrennung der
kodierten Daten verwendet wird.
Beispiel #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");
/* Ausgabe: =This is a test.=0A */
?>
Die convert.iconv.*
-Filter sind verfügbar, wenn die
iconv-Unterstützung aktiviert ist. Die
Verwendung dieser Filter entspricht der Verarbeitung aller Stream-Daten
mit der Funktion iconv(). Diese Filter unterstützen
keine Parameter, sondern erwarten stattdessen, dass die Eingabe- und
Ausgabekodierungen als Teil des Filternamens angegeben werden, d. h.
entweder als
convert.iconv.<input-encoding>.<output-encoding>
oder als
convert.iconv.<input-encoding>/<output-encoding>
(beide Schreibweisen sind semantisch äquivalent).
Beispiel #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);
/* Ausgabe: This is a test. */
?>