W3docs

convert_uuencode()

La función convert_uuencode() codifica un string usando el algoritmo uuencode. Consulta su sintaxis, parámetros y ejemplos de uso en PHP.

La función convert_uuencode() codifica un string mediante el algoritmo uuencode. Uuencoding convierte datos binarios arbitrarios en una representación ASCII imprimible para que puedan transmitirse de forma segura a través de canales que solo aceptan texto plano — históricamente adjuntos de correo electrónico y publicaciones en Usenet, antes de que MIME y Base64 se convirtieran en el estándar. La función es la mitad de codificación de un par; su contraparte, convert_uudecode(), invierte el proceso.

Importante: convert_uuencode() fue obsoleta en PHP 7.4 y eliminada en PHP 8.0. Todos los ejemplos de esta página funcionan únicamente en PHP 7.4 o versiones anteriores. Para cualquier código nuevo, usa base64_encode() / base64_decode(), que no están obsoletas y producen una salida segura para URL y correo electrónico.

Sintaxis

string convert_uuencode ( string $data )
ParámetroDescripción
$dataEl string a codificar. Obligatorio. Puede contener cualquier byte, incluyendo datos binarios.

Valor de retorno: la forma uuencoded de $data como string. El resultado es siempre más largo que la entrada — uuencoding expande los datos aproximadamente un 35% porque empaqueta cada 3 bytes de entrada en 4 caracteres imprimibles y añade cabeceras de longitud por línea más un terminador `/nueva línea.

Codificar un string

php— editable, runs on the server

En PHP 7.4 esto imprime el bloque uuencoded:

-2&5L;&\L(%=O<FQD(0``
`

El carácter inicial en cada línea de datos codifica el recuento de bytes de esa línea, el cuerpo es la carga útil codificada y la línea ` final marca el fin del flujo. La salida no es legible para humanos, pero contiene solo ASCII imprimible, que es precisamente el objetivo.

Viaje de ida y vuelta: codificar y luego decodificar

Dado que uuencoding no tiene pérdidas, pasar el resultado de nuevo por convert_uudecode() devuelve los bytes originales exactamente:

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

$encoded = convert_uuencode($original);
$decoded = convert_uudecode($encoded);

echo $decoded;                       // Hello, World!
var_dump($decoded === $original);    // bool(true)
?>

Este es el patrón típico: codificar en el lado del emisor y decodificar en el lado del receptor.

Codificar un archivo

Puedes aplicar uuencode al contenido de un archivo leyéndolo con file_get_contents() y escribiendo el resultado con file_put_contents():

<?php
$data    = file_get_contents("file_to_encode.txt");
$encoded = convert_uuencode($data);

file_put_contents("encoded_file.txt", $encoded);
?>

El nuevo archivo contiene una copia del original segura para texto que puede incrustarse en el cuerpo de un mensaje. El receptor ejecuta convert_uudecode(file_get_contents("encoded_file.txt")) para restaurar los bytes.

¿Cuándo lo usarías?

De forma realista, no lo harías en código nuevo. Uuencode es anterior a las codificaciones de transporte modernas y fue eliminado de PHP por esa razón. Solo encontrarás convert_uuencode() al mantener PHP heredado que se comunica con un sistema antiguo que aún espera cargas útiles uuencoded. Para todo lo demás:

  • Codificar datos binarios para URL, cookies, JSON o correo electrónico hoy: usa base64_encode() / base64_decode().
  • Codificar texto para cabeceras HTTP o transporte de correo electrónico de 7 bits: consulta quoted_printable_encode().
  • Producir cargas útiles de intercambio de datos: usa json_encode().

Errores comunes

  • Eliminada en PHP 8. Llamar a convert_uuencode() en PHP 8.0+ genera un Error fatal. Protege el código heredado con if (function_exists('convert_uuencode')) o migra a Base64.
  • No es cifrado. Uuencoding solo reformatea los datos; cualquiera puede decodificarlos. Nunca la uses para ocultar secretos.
  • Salida más grande. Espera un aumento de tamaño de aproximadamente el 35%, por lo que es una mala opción cuando el ancho de banda o el almacenamiento importan.

Práctica

Práctica
¿Qué hace la función convert_uuencode() en PHP?
¿Qué hace la función convert_uuencode() en PHP?
Was this page helpful?