## 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. */
    ?>

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