Start · Sprachen · PHP · Referenz · convert_uuencode

convert_uuencode

Funktion

Kodiert eine Zeichenkette im UUencode-Format, das zur Übertragung von Binärdaten über textbasierte Kanäle entwickelt wurde.

seit PHP 5.0.0 Kategorie: string

Signatur

convert_uuencode(string $string): string

Beschreibung

convert_uuencode() wandelt eine beliebige Zeichenkette in das UUencode-Format um. UUencode (Unix-to-Unix-Encoding) ist ein älteres Kodierungsverfahren, das ursprünglich dazu diente, Binärdaten über UUCP-Leitungen und andere textbasierte Übertragungskanäle zu transportieren, die nur druckbare ASCII-Zeichen unterstützen.

Die Funktion kodiert jeweils 3 Bytes der Eingabe in 4 druckbare Zeichen (aus dem Bereich ASCII 32–95). Jede Zeile der Ausgabe beginnt mit einem Längen-Zeichen, das angibt, wie viele Bytes auf dieser Zeile kodiert sind. Die Ausgabe wird mit einem Backtick-Zeichen (`) und einem Zeilenumbruch abgeschlossen.

UUencode ist heute weitgehend durch Base64 abgelöst worden. Für neue Projekte sollte daher base64_encode() bevorzugt werden, da Base64 breiter unterstützt wird und mit modernen Standards kompatibel ist. convert_uuencode() ist dennoch nützlich, wenn man mit Legacy-Systemen oder älteren UNIX-Werkzeugen kompatibel bleiben muss.

Zum Dekodieren einer UUencodierten Zeichenkette steht die Funktion convert_uudecode() zur Verfügung.

Parameter

Name Typ Default Beschreibung
$string Pflicht string Die zu kodierende Zeichenkette. Kann beliebige Binärdaten oder Text enthalten.

Rückgabewert

Typ
string
Beschreibung
Gibt die UUencodierte Zeichenkette zurück. Die Ausgabe enthält nur druckbare ASCII-Zeichen und endet mit einem Backtick-Zeichen (`) gefolgt von einem Zeilenumbruch.

Beispiele

Einfache Zeichenkette UUencodieren und zurückdekodieren

<?php
$original = 'Hallo, Welt!';
$encoded  = convert_uuencode($original);
$decoded  = convert_uudecode($encoded);

echo "Original:  " . $original . "\n";
echo "Kodiert:   " . $encoded;
echo "Dekodiert: " . $decoded . "\n";

echo "Runde-Trip-Prüfung: " . ($original === $decoded ? 'OK' : 'Fehler') . "\n";
Original: Hallo, Welt! Kodiert: ,2&QL;&\L(%=E;'0A ` Dekodiert: Hallo, Welt! Runde-Trip-Prüfung: OK

Binärdaten UUencodieren

<?php
// Binärdaten (z. B. aus einer Datei)
$binaryData = file_get_contents('/path/to/image.png');

if ($binaryData !== false) {
    $encoded = convert_uuencode($binaryData);
    echo "Originalgröße: " . strlen($binaryData) . " Bytes\n";
    echo "Kodierte Größe: " . strlen($encoded) . " Bytes\n";

    // Wiederherstellung und Vergleich
    $decoded = convert_uudecode($encoded);
    echo "Identisch nach Runde-Trip: " . ($binaryData === $decoded ? 'Ja' : 'Nein') . "\n";
} else {
    echo "Datei konnte nicht gelesen werden.\n";
}
Originalgröße: 1234 Bytes Kodierte Größe: 1690 Bytes Identisch nach Runde-Trip: Ja

// Wichtig · Fallstricke

Veraltet / Legacy-Format: UUencode ist ein veraltetes Format und wird in modernen Anwendungen kaum noch eingesetzt. Für die Kodierung von Binärdaten in einem textbasierten Format (z. B. für E-Mail-Anhänge oder Data-URIs) sollte stattdessen base64_encode() verwendet werden, da Base64 allgemeiner unterstützt wird.

Ausgabegröße: Die UUencodierte Ausgabe ist ca. 35 % größer als die Eingabe, da 3 Bytes auf 4 Zeichen abgebildet werden – ähnlich wie bei Base64.

Keine Fehlerbehandlung: Die Funktion gibt immer einen String zurück und wirft keine Ausnahmen. Bei einer leeren Eingabe ('') wird ein minimaler gültiger UUencode-Block zurückgegeben.