Start · Sprachen · PHP · Referenz · convert_uudecode

convert_uudecode

Funktion

Dekodiert eine UU-kodierte Zeichenkette und gibt die ursprünglichen Binärdaten zurück.

seit PHP 5.0.0 Kategorie: string

Signatur

convert_uudecode(string $string): string|false

Beschreibung

convert_uudecode() dekodiert eine Zeichenkette, die zuvor mit dem UUencoding-Verfahren (Unix-to-Unix-Encoding) kodiert wurde. UUencoding war ursprünglich dafür gedacht, Binärdaten über textbasierte Übertragungsprotokolle zu transportieren, bei denen nur druckbare ASCII-Zeichen erlaubt sind.

Die Funktion ist das Gegenstück zu convert_uuencode(). Sie erwartet eine gültige UU-kodierte Eingabe, wie sie von convert_uuencode() erzeugt wird, und stellt daraus die ursprünglichen Rohdaten wieder her.

UUencoding ist ein älteres Format und wird heute kaum noch eingesetzt — moderne Alternativen wie Base64 (base64_encode() / base64_decode()) sind wesentlich verbreiteter. convert_uudecode() ist dennoch nützlich, wenn Legacy-Systeme oder ältere E-Mail-Anhänge im UU-Format verarbeitet werden müssen.

Ist die übergebene Zeichenkette keine gültige UU-kodierte Eingabe, gibt die Funktion false zurück und erzeugt eine Warnung.

Parameter

Name Typ Default Beschreibung
$string Pflicht string Die UU-kodierte Zeichenkette, die dekodiert werden soll. Diese sollte zuvor mit convert_uuencode() oder einem kompatiblen UUencoding-Verfahren erzeugt worden sein.

Rückgabewert

Typ
string|false
Beschreibung
Gibt die dekodierte Zeichenkette (Rohdaten) zurück. Bei ungültiger Eingabe oder einem Fehler wird false zurückgegeben und eine Warnung ausgelöst.

Beispiele

Einfaches Kodieren und Dekodieren mit UUencoding

<?php
$original = 'Hallo, Welt! Dies ist ein Test.';

// Kodieren
$encoded = convert_uuencode($original);
echo 'Kodiert:' . PHP_EOL;
echo $encoded . PHP_EOL;

// Dekodieren
$decoded = convert_uudecode($encoded);
echo 'Dekodiert:' . PHP_EOL;
echo $decoded . PHP_EOL;

// Vergleich
var_dump($original === $decoded);
Kodiert: ;2&%L;&\L(%=E;'0A($1I97,@:7-T(&5I;B!497-T+@`` Dekodiert: Hallo, Welt! Dies ist ein Test. bool(true)

Fehlerbehandlung bei ungültiger Eingabe

<?php
$invalid = 'Das ist keine gültige UU-kodierte Zeichenkette!';

$result = @convert_uudecode($invalid);

if ($result === false) {
    echo 'Dekodierung fehlgeschlagen: Ungültige UU-kodierte Eingabe.' . PHP_EOL;
} else {
    echo 'Dekodiert: ' . $result . PHP_EOL;
}
Dekodierung fehlgeschlagen: Ungültige UU-kodierte Eingabe.

Verarbeitung von Binärdaten

<?php
// Beliebige Binärdaten (z. B. Bytes 0–15)
$binary = implode('', array_map('chr', range(0, 15)));

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

echo 'Originallänge: ' . strlen($binary) . PHP_EOL;
echo 'Dekodierte Länge: ' . strlen($decoded) . PHP_EOL;
var_dump($binary === $decoded);
Originallänge: 16 Dekodierte Länge: 16 bool(true)

// Wichtig · Fallstricke

Veraltetes Format: UUencoding gilt als veraltet. Für neue Projekte sollte stattdessen base64_encode() und base64_decode() verwendet werden, da Base64 weiter verbreitet und besser standardisiert ist.

Fehlerbehandlung: Bei ungültiger Eingabe gibt die Funktion false zurück und löst eine PHP-Warnung aus. Der Rückgabewert sollte daher immer mit === false geprüft werden, da eine leere dekodierte Zeichenkette ebenfalls möglich ist.

Nicht für Sicherheitszwecke: UUencoding ist keine Verschlüsselung. Kodierte Daten können von jedem, der die Funktion kennt, trivial zurückgewandelt werden. Es bietet keinerlei Schutz vor unbefugtem Zugriff.