W3docs

convert_uudecode()

A função convert_uudecode() decodifica uma string uuencoded de volta aos dados binários originais. Veja a sintaxe e exemplos completos.

A função convert_uudecode() decodifica uma string uuencoded de volta aos seus dados binários originais. É o inverso exato de convert_uuencode(): tudo o que convert_uuencode() produz, convert_uudecode() transforma de volta nos bytes originais.

Esta página cobre a sintaxe, um exemplo completo de ida e volta, como a função se comporta com arquivos, os erros comuns e quando utilizá-la em vez de uma alternativa moderna como Base64.

O que é uuencode?

uuencode (Unix-to-Unix encoding) é um esquema antigo para empacotar dados binários em caracteres ASCII imprimíveis, permitindo que eles trafeguem com segurança por canais somente de texto, como corpos de e-mail ou logs em texto simples. Cada grupo de 3 bytes é mapeado para 4 caracteres imprimíveis, e o primeiro caractere de cada linha armazena o comprimento daquela linha.

Em PHP, raramente você produz dados uuencoded manualmente. Você os recebe de um sistema legado, ou os cria com convert_uuencode() e os decodifica posteriormente com convert_uudecode(). Observe que convert_uudecode() opera sobre o corpo codificado bruto — ela não exige (nem remove) o invólucro clássico begin 644 ... / end que a ferramenta de linha de comando uuencode adiciona.

Sintaxe

convert_uudecode(string $string): string|false

A função recebe um parâmetro, $string — os dados uuencoded a serem decodificados — e retorna os dados decodificados. Ela retorna false se a entrada não for um dado uuencoded válido.

Exemplo básico: ida e volta de uma string

A maneira mais clara de ver convert_uudecode() em ação é codificar uma string e decodificá-la de volta:

<?php
$original = "Hello, World!";

// Encode the data first.
$encoded = convert_uuencode($original);

// Decode it back to the original bytes.
$decoded = convert_uudecode($encoded);

echo $decoded;
?>

A saída deste código é:

Hello, World!

O valor decodificado é byte a byte idêntico à string com a qual começamos. Este padrão de ida e volta é a maneira confiável de usar a função: codifique com convert_uuencode(), armazene ou transmita o texto codificado e, em seguida, decodifique com convert_uudecode() na outra ponta.

Decodificando um arquivo uuencoded

Um caso prático comum é ler conteúdo uuencoded de um arquivo e gravar os bytes decodificados de volta:

<?php
$encoded = file_get_contents("encoded_file.txt");

if ($encoded === false) {
    die("Could not read the encoded file.\n");
}

$decoded = convert_uudecode($encoded);

if ($decoded === false) {
    die("The file did not contain valid uuencoded data.\n");
}

file_put_contents("decoded_file.txt", $decoded);
echo "Decoded " . strlen($decoded) . " bytes.\n";
?>

Aqui, file_get_contents() lê o texto codificado, convert_uudecode() o decodifica e file_put_contents() salva os bytes originais em um novo arquivo. Verificar os valores de retorno protege contra um arquivo ausente ou entrada corrompida.

Erros comuns

  • Ela se combina com convert_uuencode(), não com a ferramenta shell uuencode. Dados produzidos pelo comando uuencode independente incluem um cabeçalho begin 644 name e um rodapé end. Passar esse invólucro diretamente para convert_uudecode() não retornará os bytes originais — remova o cabeçalho/rodapé primeiro, ou recodifique o corpo com convert_uuencode().
  • Entrada inválida retorna false. Sempre verifique o resultado antes de usá-lo, especialmente quando os dados vêm de um arquivo ou da rede.
  • uuencode não é criptografia. Ele apenas torna os dados binários imprimíveis; não oferece nenhuma segurança. Qualquer pessoa pode decodificá-lo.

Quando usar (e quando não usar)

Use convert_uudecode() quando precisar interoperar com um sistema legado que já utiliza uuencode. Para código novo, prefira Base64 (base64_encode() / base64_decode()): é o padrão moderno para incorporar dados binários com segurança em JSON, data URIs e cabeçalhos HTTP, e é suportado em todo lugar.

Funções relacionadas

Prática

Prática
O que a função 'convert_uudecode' em PHP faz?
O que a função 'convert_uudecode' em PHP faz?
Was this page helpful?