Start · Sprachen · PHP · Referenz · ldap_t61_to_8859

ldap_t61_to_8859

Funktion

Konvertiert einen T.61-kodierten String in ISO-8859-Zeichenkodierung.

Kategorie: misc

Signatur

ldap_t61_to_8859(string $value): string|false

Beschreibung

ldap_t61_to_8859() übersetzt einen in der T.61-Zeichenkodierung (auch als Teletex bekannt) vorliegenden String in die ISO-8859-1-Zeichenkodierung (Latin-1). Diese Funktion ist besonders dann nützlich, wenn LDAP-Verzeichnisse ältere Attributwerte im T.61-Format zurückliefern und diese in einem für westeuropäische Anwendungen gängigen Encoding weiterverarbeitet werden sollen.

Das T.61-Format wurde früher häufig in X.500-Verzeichnisdiensten und damit auch in LDAP-Implementierungen als Zeichenkodierung eingesetzt, insbesondere für Textwerte wie Namen oder Adressen. In modernen Systemen ist UTF-8 die bevorzugte Kodierung, jedoch können ältere LDAP-Server oder migrierte Verzeichnisdaten noch T.61-kodierte Werte enthalten.

Die Funktion ist das Gegenstück zu ldap_8859_to_t61(), welche in die entgegengesetzte Richtung konvertiert. Beide Funktionen sind nützlich bei der Integration mit Legacy-LDAP-Infrastrukturen.

Parameter

Name Typ Default Beschreibung
$value Pflicht string Der T.61-kodierte Eingabe-String, der in ISO-8859-1 konvertiert werden soll.

Rückgabewert

Typ
string|false
Beschreibung
Gibt den konvertierten String in ISO-8859-1-Kodierung zurück. Bei einem Fehler wird false zurückgegeben.

Beispiele

Einfache Konvertierung eines T.61-kodierten LDAP-Attributwerts

<?php
// Simulierter T.61-kodierter Wert (z. B. aus einem Legacy-LDAP-Server)
$t61String = "M\xc8uller"; // T.61-kodierter Wert für 'Müller'

$converted = ldap_t61_to_8859($t61String);

if ($converted !== false) {
    echo "Konvertiert: " . $converted . PHP_EOL;
} else {
    echo "Konvertierung fehlgeschlagen." . PHP_EOL;
}
Konvertiert: Müller

LDAP-Suchergebnisse mit T.61-Attributen umwandeln

<?php
// LDAP-Verbindung aufbauen
$ldap = ldap_connect('ldap://legacy-ldap.example.com');
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind($ldap, 'cn=admin,dc=example,dc=com', 'secret');

// Suche durchführen
$result = ldap_search($ldap, 'dc=example,dc=com', '(objectClass=person)', ['cn', 'sn']);
$entries = ldap_get_entries($ldap, $result);

// T.61-kodierte Attributwerte in ISO-8859-1 umwandeln
for ($i = 0; $i < $entries['count']; $i++) {
    $cn = ldap_t61_to_8859($entries[$i]['cn'][0]);
    $sn = ldap_t61_to_8859($entries[$i]['sn'][0]);
    echo "Name: $cn, Nachname: $sn" . PHP_EOL;
}

ldap_close($ldap);

// Wichtig · Fallstricke

Hinweis zur Verfügbarkeit: Diese Funktion ist Teil der PHP-LDAP-Erweiterung und steht nur dann zur Verfügung, wenn PHP mit LDAP-Unterstützung kompiliert wurde (--with-ldap). Sie ist außerdem nicht in allen PHP-Versionen vollständig dokumentiert und gilt als experimentell bzw. undokumentiert.

Zeichenkodierung beachten: Der zurückgegebene String liegt in ISO-8859-1 vor. Für moderne Anwendungen, die intern mit UTF-8 arbeiten, sollte der konvertierte Wert anschließend mit utf8_encode() (veraltet ab PHP 8.2, alternativ mb_convert_encoding() oder iconv() verwenden) in UTF-8 umgewandelt werden.

Legacy-Funktion: In modernen LDAP-Umgebungen ist T.61 weitgehend durch UTF-8 ersetzt worden. Der Einsatz dieser Funktion ist hauptsächlich für die Kompatibilität mit älteren Verzeichnisdiensten relevant.