Signatur
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
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;
}
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.