convert_uuencode()
A função convert_uuencode() codifica uma string usando o algoritmo uuencode. Veja a sintaxe e exemplos de uso.
A função convert_uuencode() codifica uma string usando o algoritmo uuencode. O uuencoding converte dados binários arbitrários em uma representação ASCII imprimível, permitindo que trafeguem com segurança por canais que aceitam apenas texto simples — historicamente anexos de e-mail e publicações no Usenet, antes de MIME e Base64 se tornarem o padrão. A função é a metade de codificação de um par; sua contraparte, convert_uudecode(), reverte o processo.
Importante:
convert_uuencode()foi descontinuada no PHP 7.4 e removida no PHP 8.0. Todos os exemplos nesta página funcionam apenas no PHP 7.4 ou versões anteriores. Para qualquer novo código, usebase64_encode()/base64_decode(), que não estão descontinuadas e produzem saída segura para URL e e-mail.
Sintaxe
string convert_uuencode ( string $data )| Parâmetro | Descrição |
|---|---|
$data | A string a ser codificada. Obrigatório. Pode conter quaisquer bytes, incluindo dados binários. |
Valor de retorno: a forma uuencode de $data como uma string. O resultado é sempre maior do que a entrada — o uuencoding expande os dados em aproximadamente 35% porque empacota cada 3 bytes de entrada em 4 caracteres imprimíveis e adiciona cabeçalhos de comprimento por linha, além de um terminador `/nova linha.
Codificando uma string
No PHP 7.4, isso imprime o bloco uuencoded:
-2&5L;&\L(%=O<FQD(0``
`O caractere inicial em cada linha de dados codifica a contagem de bytes daquela linha, o corpo é a carga codificada, e a linha ` final marca o fim do fluxo. A saída não é legível por humanos, mas contém apenas ASCII imprimível, que é exatamente o objetivo.
Ida e volta: codificar e depois decodificar
Como o uuencoding não tem perda, passar o resultado de volta por convert_uudecode() retorna os bytes originais exatamente:
<?php
$original = "Hello, World!";
$encoded = convert_uuencode($original);
$decoded = convert_uudecode($encoded);
echo $decoded; // Hello, World!
var_dump($decoded === $original); // bool(true)
?>Este é o padrão típico: codificar no lado do remetente e decodificar no lado do destinatário.
Codificando um arquivo
Você pode fazer uuencode do conteúdo de um arquivo lendo-o com file_get_contents() e gravando o resultado com file_put_contents():
<?php
$data = file_get_contents("file_to_encode.txt");
$encoded = convert_uuencode($data);
file_put_contents("encoded_file.txt", $encoded);
?>O novo arquivo contém uma cópia segura em texto do original, que pode ser incorporada no corpo de uma mensagem. O receptor executa convert_uudecode(file_get_contents("encoded_file.txt")) para restaurar os bytes.
Quando você usaria isso?
Na prática, você não usaria em código novo. O uuencode é anterior às codificações de transporte modernas e foi removido do PHP por esse motivo. Você só encontrará convert_uuencode() ao manter código PHP legado que se comunica com um sistema antigo que ainda espera cargas uuencode. Para todo o resto:
- Codificar binário para URLs, cookies, JSON ou e-mail hoje: use
base64_encode()/base64_decode(). - Codificar texto para cabeçalhos HTTP ou transporte de e-mail de 7 bits: veja
quoted_printable_encode(). - Produzir payloads de intercâmbio de dados: use
json_encode().
Armadilhas comuns
- Removida no PHP 8. Chamar
convert_uuencode()no PHP 8.0+ gera umErrorfatal. Proteja o código legado comif (function_exists('convert_uuencode'))ou migre para Base64. - Não é criptografia. O uuencoding apenas reformata os dados; qualquer pessoa pode decodificá-los. Nunca o use para ocultar segredos.
- Saída maior. Espere um aumento de tamanho de cerca de 35%, portanto não é adequado quando largura de banda ou armazenamento são importantes.