Signatur
Beschreibung
ldap_8859_to_t61 konvertiert einen String, der in der ISO-8859-1-Zeichenkodierung (Latin-1) vorliegt, in die T.61-Zeichenkodierung. T.61 ist ein älterer Zeichensatz, der in LDAP-Protokollen der Version 2 (LDAPv2) für bestimmte Attributwerte wie description oder cn verwendet wurde.
Diese Funktion wird benötigt, wenn man mit älteren LDAP-Verzeichnissen kommuniziert, die noch LDAPv2 einsetzen und T.61-kodierte Zeichenketten erwarten. Moderne LDAP-Server und das weit verbreitete LDAPv3 verwenden hingegen UTF-8, sodass diese Funktion heute nur noch in Legacy-Szenarien relevant ist.
Das Gegenstück zu dieser Funktion ist ldap_t61_to_8859, welches die umgekehrte Konvertierung von T.61 nach ISO-8859-1 durchführt. Beide Funktionen arbeiten auf Byte-Ebene und sind nicht für allgemeine Zeichensatzkonvertierungen geeignet – dafür sollte man mb_convert_encoding oder iconv bevorzugen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | string | Der zu konvertierende String in ISO-8859-1-Kodierung, der in T.61-Kodierung umgewandelt werden soll. |
Rückgabewert
Beispiele
Attributwert für LDAPv2-Server vorbereiten
<?php
// Ein ISO-8859-1-kodierter Name mit Umlauten
$name = "Müller";
// Konvertierung in T.61 für einen alten LDAPv2-Server
$t61Name = ldap_8859_to_t61($name);
// Den konvertierten Wert für LDAP verwenden
$ldap = ldap_connect("ldap://legacy-server.example.com");
if ($ldap) {
ldap_bind($ldap, "cn=admin,dc=example,dc=com", "secret");
$entry = [
"cn" => $t61Name,
"objectclass" => "person",
"sn" => $t61Name,
];
ldap_add($ldap, "cn={$t61Name},dc=example,dc=com", $entry);
ldap_close($ldap);
}
?>
Hin- und Rückkonvertierung demonstrieren
<?php
$original = "Ärger mit Björn";
// ISO-8859-1 -> T.61
$t61 = ldap_8859_to_t61($original);
echo "T.61: " . bin2hex($t61) . PHP_EOL;
// T.61 -> ISO-8859-1 (Rückkonvertierung)
$back = ldap_t61_to_8859($t61);
echo "Zurück: " . $back . PHP_EOL;
// Prüfen, ob der Originalwert wiederhergestellt wurde
echo ($original === $back) ? "Identisch" : "Unterschiedlich";
?>
// Wichtig · Fallstricke
Veraltete Funktion: ldap_8859_to_t61 ist ausschließlich für den Einsatz mit LDAPv2-Servern relevant. Da LDAPv3 (RFC 4511) UTF-8 als Standardkodierung verwendet, wird diese Funktion in modernen Umgebungen kaum noch benötigt. Für neue Projekte sollte generell mb_convert_encoding oder iconv zur Zeichensatzkonvertierung eingesetzt werden.
Die Funktion ist Bestandteil der LDAP-Erweiterung und steht nur zur Verfügung, wenn PHP mit LDAP-Unterstützung kompiliert wurde (--with-ldap). In neueren PHP-Versionen (ab PHP 8.0) kann ihr Verhalten bei ungültigen Eingaben variieren – eine gründliche Eingabevalidierung ist empfehlenswert.