Signatur
Beschreibung
ldap_explode_dn() trennt einen LDAP Distinguished Name (DN) wie z. B. cn=Max Mustermann,ou=Benutzer,dc=example,dc=com in seine einzelnen RDN-Bestandteile (Relative Distinguished Names) auf. Das Ergebnis ist ein Array, in dem jede Komponente als eigenes Element gespeichert wird.
Der Parameter with_attrib steuert, ob die Attributnamen (z. B. cn=, ou=) in den zurückgegebenen Elementen enthalten bleiben sollen (0) oder ob nur die reinen Werte ohne Attributpräfix zurückgegeben werden sollen (1). Der Eintrag unter dem Schlüssel count enthält immer die Anzahl der gefundenen Komponenten.
Die Funktion ist besonders nützlich, wenn man einzelne Teile eines DN programmatisch auswerten, anzeigen oder weiterverarbeiten möchte, ohne den DN manuell anhand von Kommas zu trennen – was bei DNs mit Sonderzeichen fehleranfällig wäre.
Zu beachten ist, dass ldap_explode_dn() keine echte LDAP-Verbindung benötigt; sie arbeitet rein auf dem übergebenen String. Sie eignet sich daher auch für lokale Vorverarbeitungen ohne aktive Verbindung zu einem LDAP-Server.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $dn Pflicht | string | Der zu zerlegende LDAP Distinguished Name, z. B. cn=Max Mustermann,ou=Benutzer,dc=example,dc=com. |
|
| $with_attrib Pflicht | int | Gibt an, ob die Attributnamen in den Ergebnissen enthalten sein sollen. 0 = Attributname und Wert (z. B. cn=Max), 1 = nur der Wert ohne Attributpräfix (z. B. Max). |
Rückgabewert
count gibt die Anzahl der Elemente an. Im Fehlerfall wird false zurückgegeben.Beispiele
DN mit Attributnamen zerlegen
<?php
$dn = 'cn=Max Mustermann,ou=Benutzer,dc=example,dc=com';
// with_attrib = 0: Attributname + Wert
$parts = ldap_explode_dn($dn, 0);
print_r($parts);
DN nur mit Werten (ohne Attributnamen) zerlegen
<?php
$dn = 'cn=Max Mustermann,ou=Benutzer,dc=example,dc=com';
// with_attrib = 1: nur Werte ohne Attributpräfix
$parts = ldap_explode_dn($dn, 1);
print_r($parts);
// Praktische Nutzung: den CN-Wert auslesen
echo 'Benutzername: ' . $parts[0];
// Wichtig · Fallstricke
Sonderzeichen im DN: LDAP-DNs können Sonderzeichen wie Kommas, Gleichheitszeichen oder Backslashes enthalten, die nach RFC 4514 maskiert sind. ldap_explode_dn() berücksichtigt diese Maskierungen und trennt nur an nicht-maskierten Kommas – im Gegensatz zu einem einfachen explode(',', $dn), das zu falschen Ergebnissen führen kann.
Keine LDAP-Verbindung nötig: Die Funktion arbeitet rein lokal auf dem übergebenen String und erfordert keine aktive LDAP-Verbindung oder Ressource.
Rückgabe bei ungültigem DN: Bei einem leeren oder syntaktisch ungültigen DN kann die Funktion false zurückgeben. Es empfiehlt sich, den Rückgabewert stets zu prüfen, bevor auf Array-Elemente zugegriffen wird.