Signatur
Beschreibung
ldap_get_option ermöglicht es, die aktuelle Konfiguration einer LDAP-Verbindung auszulesen. Die Funktion schreibt den Wert der angeforderten Option per Referenz in die Variable $value und gibt true bei Erfolg zurück.
Typische Anwendungsfälle sind das Diagnostizieren von Verbindungsproblemen, das Überprüfen von gesetzten Timeouts oder Protokollversionen sowie das Logging und Debugging von LDAP-Verbindungen. Die Funktion ist das Gegenstück zu ldap_set_option.
Die verfügbaren Optionen umfassen unter anderem LDAP_OPT_PROTOCOL_VERSION (LDAP-Protokollversion), LDAP_OPT_TIMELIMIT (Zeitlimit für Serveroperationen), LDAP_OPT_SIZELIMIT (maximale Anzahl zurückgegebener Einträge), LDAP_OPT_REFERRALS (Verfolgung von Referrals) und LDAP_OPT_HOST_NAME (Hostname). Der Typ des Rückgabewerts in $value hängt von der jeweiligen Option ab (Integer, String oder Array).
Ab PHP 8.1 ist der erste Parameter vom Typ LDAP\Connection (vorher war es eine resource). Die Funktion ist besonders nützlich in komplexen LDAP-Umgebungen, in denen Verbindungsparameter dynamisch angepasst und überprüft werden müssen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ldap Pflicht | LDAP\Connection | Eine gültige LDAP-Verbindungsinstanz, die zuvor mit ldap_connect erstellt wurde. |
|
| $option Pflicht | int | Die abzufragende Option als Konstante, z. B. LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_TIMELIMIT, LDAP_OPT_SIZELIMIT, LDAP_OPT_REFERRALS oder LDAP_OPT_HOST_NAME. |
|
| $value Pflicht | mixed | Referenz auf eine Variable, in die der aktuelle Wert der Option geschrieben wird. Der Typ hängt von der abgefragten Option ab (z. B. int oder string). |
Rückgabewert
true zurück, wenn die Option erfolgreich ausgelesen wurde, andernfalls false.Beispiele
LDAP-Protokollversion auslesen
<?php
$ldap = ldap_connect('ldap://ldap.example.com');
if ($ldap === false) {
die('Verbindung fehlgeschlagen.');
}
// Protokollversion lesen
if (ldap_get_option($ldap, LDAP_OPT_PROTOCOL_VERSION, $protocolVersion)) {
echo 'LDAP-Protokollversion: ' . $protocolVersion . PHP_EOL;
} else {
echo 'Fehler beim Lesen der Option.' . PHP_EOL;
}
Mehrere LDAP-Optionen diagnostisch auslesen
<?php
$ldap = ldap_connect('ldap://ldap.example.com');
if ($ldap === false) {
die('Verbindung fehlgeschlagen.');
}
// Protokollversion auf LDAPv3 setzen
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_TIMELIMIT, 30);
ldap_set_option($ldap, LDAP_OPT_SIZELIMIT, 100);
$optionen = [
LDAP_OPT_PROTOCOL_VERSION => 'Protokollversion',
LDAP_OPT_TIMELIMIT => 'Zeitlimit (Sekunden)',
LDAP_OPT_SIZELIMIT => 'Größenlimit (Einträge)',
LDAP_OPT_REFERRALS => 'Referrals verfolgen',
];
foreach ($optionen as $option => $bezeichnung) {
if (ldap_get_option($ldap, $option, $wert)) {
echo $bezeichnung . ': ' . var_export($wert, true) . PHP_EOL;
}
}
// Wichtig · Fallstricke
Verbindung erforderlich: Die Funktion benötigt zwingend eine gültige LDAP-Verbindung. Im Gegensatz zu ldap_set_option kann ldap_get_option nicht global (ohne Verbindung) aufgerufen werden.
Typänderung ab PHP 8.1: Vor PHP 8.1 war der Parameter $ldap vom Typ resource. Ab PHP 8.1 wird der Typ LDAP\Connection erwartet. Bestehender Code mit is_resource()-Prüfungen muss ggf. angepasst werden.
Verfügbarkeit von Optionen: Nicht alle Optionen sind auf allen Betriebssystemen und LDAP-Bibliotheken verfügbar. Bei nicht unterstützten Optionen gibt die Funktion false zurück, ohne eine Fehlermeldung auszulösen.