Signatur
Beschreibung
ldap_close() ist ein direkter Alias der Funktion ldap_unbind() und trennt die bestehende Verbindung zu einem LDAP-Server. Der übergebene LDAP-Link-Identifier wird dabei ungültig und gibt die zugehörigen Ressourcen frei.
Die Funktion sendet intern ein LDAP-Unbind-Protokollanfrage an den Server, um die Verbindung ordnungsgemäß zu beenden. Dies entspricht dem RFC 4511-Standard für LDAP-Verbindungsmanagement.
Da ldap_close() lediglich ein Alias ist, verhält sie sich in allen Belangen identisch zu ldap_unbind(). Es wird empfohlen, konsistent eine der beiden Varianten zu verwenden – ldap_unbind() ist dabei die semantisch aussagekräftigere Wahl, da sie den zugrundeliegenden Protokollvorgang besser beschreibt.
In modernen PHP-Versionen (ab PHP 8.1) erwartet die Funktion eine LDAP\Connection-Instanz anstelle einer klassischen Ressource.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ldap Pflicht | LDAP | Ein gültiger LDAP-Link-Identifier, wie er von ldap_connect() zurückgegeben wird. Ab PHP 8.1 handelt es sich um ein LDAP\Connection-Objekt. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn der übergebene Identifier bereits ungültig ist).Beispiele
Einfaches Verbindungs-Auf- und Abbau-Beispiel
<?php
// LDAP-Verbindung herstellen
$ldap = ldap_connect('ldap://ldap.example.com');
if ($ldap) {
// Optionen setzen
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
// Anonym binden
if (ldap_bind($ldap)) {
echo "Verbindung erfolgreich hergestellt.\n";
// ... LDAP-Operationen durchführen ...
// Verbindung schließen
ldap_close($ldap);
echo "Verbindung geschlossen.\n";
} else {
echo "Binden fehlgeschlagen.\n";
}
} else {
echo "Verbindung konnte nicht aufgebaut werden.\n";
}
Verbindung nach authentifizierter Suche schließen
<?php
$ldap = ldap_connect('ldap://ldap.example.com');
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
$bindDn = 'cn=admin,dc=example,dc=com';
$bindPassword = 'geheimesPasswort';
if (ldap_bind($ldap, $bindDn, $bindPassword)) {
$baseDn = 'dc=example,dc=com';
$filter = '(uid=mustermann)';
$result = ldap_search($ldap, $baseDn, $filter);
$entries = ldap_get_entries($ldap, $result);
echo "Gefundene Einträge: " . $entries['count'] . "\n";
}
// Verbindung ordnungsgemäß beenden
ldap_close($ldap);
// Wichtig · Fallstricke
Alias-Hinweis: Da ldap_close() ein Alias von ldap_unbind() ist, sind beide Funktionen vollständig austauschbar. In Code-Reviews und Projekten sollte eine einheitliche Verwendung bevorzugt werden, um Verwirrung zu vermeiden.
Ressourcenverwaltung: PHP gibt LDAP-Verbindungen am Ende eines Skripts automatisch frei. Dennoch ist es gute Praxis, Verbindungen explizit zu schließen – besonders bei lang laufenden Skripten oder wenn viele Verbindungen hintereinander geöffnet werden, um Ressourcenlecks zu vermeiden.
PHP 8.1+: Ab PHP 8.1 wurden LDAP-Ressourcen in LDAP\Connection-Objekte umgewandelt. Code, der ältere Ressourcen-Typen erwartet, muss entsprechend angepasst werden.