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);
$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);
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
?>
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");
?>
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);
?>