Umwandlungsfilter
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.
convert.base64-encode und convert.base64-decode
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. */
?>
convert.quoted-printable-encode und convert.quoted-printable-decode
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 */
?>
convert.iconv.*
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. */
?>