W3docs

convert_uuencode()

Die Funktion convert_uuencode() kodiert einen string mit dem Uuencode-Algorithmus. Syntax und Verwendungsbeispiele.

Die Funktion convert_uuencode() kodiert einen string mithilfe des uuencode-Algorithmus. Uuencoding wandelt beliebige Binärdaten in eine druckbare ASCII-Darstellung um, sodass sie sicher über Kanäle übertragen werden können, die nur einfachen Text akzeptieren – historisch gesehen E-Mail-Anhänge und Usenet-Beiträge, bevor MIME und Base64 zum Standard wurden. Die Funktion ist die kodierende Hälfte eines Paares; ihr Gegenstück, convert_uudecode(), kehrt den Vorgang um.

Wichtig: convert_uuencode() wurde in PHP 7.4 als veraltet markiert und in PHP 8.0 entfernt. Alle Beispiele auf dieser Seite laufen nur auf PHP 7.4 oder älter. Verwenden Sie für neuen Code base64_encode() / base64_decode(), die nicht veraltet sind und URL- und E-Mail-sichere Ausgaben erzeugen.

Syntax

string convert_uuencode ( string $data )
ParameterBeschreibung
$dataDer zu kodierende string. Pflichtangabe. Kann beliebige Bytes einschließlich Binärdaten enthalten.

Rückgabewert: die uukodierte Form von $data als string. Das Ergebnis ist immer länger als die Eingabe – Uuencoding vergrößert die Daten um etwa 35 %, da jeweils 3 Eingabebytes in 4 druckbare Zeichen gepackt werden und zeilenweise Längenheader sowie ein `/Zeilenumbruch-Terminator hinzugefügt werden.

Einen string kodieren

php— editable, runs on the server

Auf PHP 7.4 gibt dies den uuenkodierten Block aus:

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

Das führende Zeichen jeder Datenzeile kodiert die Byteanzahl dieser Zeile, der Hauptteil ist die kodierte Nutzlast und die abschließende `-Zeile markiert das Ende des Datenstroms. Die Ausgabe ist nicht für Menschen lesbar, enthält aber ausschließlich druckbare ASCII-Zeichen – das ist genau der Sinn der Sache.

Hin- und Rückwandlung: kodieren und dekodieren

Da Uuencoding verlustfrei ist, gibt das Übergeben des Ergebnisses an convert_uudecode() die ursprünglichen Bytes exakt zurück:

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

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

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

Dies ist das typische Muster: auf der Senderseite kodieren, auf der Empfängerseite dekodieren.

Eine Datei kodieren

Der Inhalt einer Datei kann uukodiert werden, indem sie mit file_get_contents() gelesen und das Ergebnis mit file_put_contents() gespeichert wird:

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

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

Die neue Datei enthält eine textsichere Kopie des Originals, die in einen Nachrichtentext eingebettet werden kann. Der Empfänger führt convert_uudecode(file_get_contents("encoded_file.txt")) aus, um die Bytes wiederherzustellen.

Wann würde man es verwenden?

Realistisch betrachtet würde man es im neuen Code nicht verwenden. Uuencode stammt aus einer Zeit vor modernen Transportkodierungen und wurde deshalb aus PHP entfernt. Sie werden convert_uuencode() nur bei der Pflege von Legacy-PHP-Code begegnen, der mit einem alten System kommuniziert, das noch uukodierte Nutzdaten erwartet. Für alles andere gilt:

  • Binärdaten für URLs, Cookies, JSON oder E-Mails kodieren: verwenden Sie base64_encode() / base64_decode().
  • Text für HTTP-Header oder 7-Bit-E-Mail-Transport kodieren: siehe quoted_printable_encode().
  • Datenaustausch-Nutzdaten erzeugen: verwenden Sie json_encode().

Häufige Fallstricke

  • In PHP 8 entfernt. Der Aufruf von convert_uuencode() auf PHP 8.0+ löst einen fatalen Error aus. Schützen Sie Legacy-Code mit if (function_exists('convert_uuencode')) oder migrieren Sie zu Base64.
  • Keine Verschlüsselung. Uuencoding formatiert Daten lediglich um; jeder kann sie dekodieren. Verwenden Sie es niemals zum Verbergen von Geheimnissen.
  • Größere Ausgabe. Rechnen Sie mit einer Größenzunahme von etwa 35 %, daher ist es ungeeignet, wo Bandbreite oder Speicher eine Rolle spielen.

Übung

Übung
Was macht die Funktion convert_uuencode() in PHP?
Was macht die Funktion convert_uuencode() in PHP?
Was this page helpful?