PHP Conference China 2020

Fitros de Conversão

Como todos os filtros string.*, os filtros convert.* realizam ações similares aos seus nomes. Para mais informações sobre um determinado filtro, veja a página do manual para a função correspondente.

convert.base64-encode e convert.base64-decode

O uso desses filtros é equivalente a processar todos os dados da stream com as funções base64_encode() e base64_decode() respectivamente. convert.base64-encode suporta parâmetros no formato de um array associativo. Se line-length for passado, a saída do base64 será dividida em pedaços de line-length caracteres cada. Se line-break-chars for passado, cada pedaço será delimitado pelos caracteres passados. Esses parâmetros dão o mesmo efeito que usar base64_encode() com chunk_split().

Exemplo #1 convert.base64-encode & convert.base64-decode

<?php
$fp 
fopen('php://output''w');
stream_filter_append($fp'convert.base64-encode');
fwrite($fp"Isto é um teste.\n");
fclose($fp);
/* Saída:  SXN0byDDqSB1bSB0ZXN0ZS4K  */

$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"Isto é um teste.\n");
fclose($fp);
/* Saída:  SXN0byDD
        :  qSB1bSB0
        :  ZXN0ZS4K  */

$fp fopen('php://output''w');
stream_filter_append($fp'convert.base64-decode');
fwrite($fp"SXN0byDDqSB1bSB0ZXN0ZS4K");
fclose($fp);
/* Saída:  Isto é um teste.  */
?>

convert.quoted-printable-encode e convert.quoted-printable-decode

O uso da versão de decodificação desse filtro é equivalente ao processamento de todos os dados da stream pelas funções quoted_printable_decode(). Não há nenhuma função equivalente a convert.quoted-printable-encode. convert.quoted-printable-encode suporta parâmetros passados como um array associativo. Além dos parâmetros suportados por convert.base64-encode, convert.quoted-printable-encode também suporta os argumentos booleanos binary e force-encode-first. convert.base64-decode suporta apenas o parâmetro line-break-chars como uma dica de tipo para retirar do conteúdo codificado.

Exemplo #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"Isto é um teste.\n");
/* Saída:  Isto =C3=A9 um teste.=0A  */
?>

convert.iconv.*

Os filtros convert.iconv.* estarão disponíveis se o suporte a iconv estiver habilitado, e se sua utilização é equivalente a processar todos os dados do stream através do iconv(). Esses filtros não suportam parâmetros, em vez disso esperam que as codificações de entrada e saída sejam informados no nome do filtro, por exemplo, convert.iconv.<input-encoding>.<output-encoding> ou convert.iconv.<input-encoding>/<output-encoding> (ambas notações são equivalentes).

Exemplo #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);
/* Outputs: This is a test. */
?>
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top