W3docs

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, use base64_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âmetroDescrição
$dataA 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

php— editable, runs on the server

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 um Error fatal. Proteja o código legado com if (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.

Prática

Prática
O que a função convert_uuencode() em PHP faz?
O que a função convert_uuencode() em PHP faz?
Was this page helpful?