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, usabase64_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ámetro | Descripción |
|---|---|
$data | El 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
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 unErrorfatal. Protege el código heredado conif (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.