Filtros de conversión

Al igual que los filtros de chaîne de caractères, los filtros de conversión hacen lo que su nombre indica. Para más información sobre un filtro dado, consulte la página del manual de la función correspondiente.

convert.base64-encode y convert.base64-decode

El uso de este filtro es equivalente a tratar todos los datos del flujo a través de las funciones base64_encode() y base64_decode() respectivamente. convert.base64-encode soporta parámetros en forma de tableau asociativo. Si line-length es proporcionado, la salida base64 será separada en líneas de line-length caracteres. Si line-break-chars es proporcionado, cada bloque de caracteres será delimitado por el carácter proporcionado. Estos parámetros dan el mismo efecto que la función base64_encode() utilizada conjuntamente con chunk_split().

Ejemplo #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);
/* muestra : 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);
/* muestra : VGhpcyBp
: cyBhIHRl
: c3QuCg== */

$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'convert.base64-decode');
fwrite($fp, "VGhpcyBpcyBhIHRlc3QuCg==");
fclose($fp);
/* muestra : This is a test. */
?>

convert.quoted-printable-encode y convert.quoted-printable-decode

El uso de la versión decode de este filtro es equivalente a tratar todos los datos del flujo a través de la función quoted_printable_decode(). No hay equivalente funcional a convert.quoted-printable-encode. convert.quoted-printable-encode soporta parámetros en forma de tableau asociativo. Además de los parámetros soportados por convert.base64-encode, convert.quoted-printable-encode también acepta los argumentos booléen binary y force-encode-first. convert.base64-decode soporta únicamente el parámetro line-break-chars como indicador de tipo para la extracción de la carga codificada.

Ejemplo #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");
/* muestra : =This is a test.=0A */
?>

convert.iconv.*

Los filtros convert.iconv.* están disponibles, si el soporte de iconv está activado, y sus usos son equivalentes a tratar todos los datos del flujo con iconv(). Estos filtros no soportan parámetros, pero se espera que el nombre del filtro contenga la codificación de los datos de entrada y salida, es decir, convert.iconv.<input-encoding>.<output-encoding> o convert.iconv.<input-encoding>/<output-encoding> (ambas notaciones son semánticamente equivalentes).

Ejemplo #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);
/* Muestra: This is a test. */
?>