Start · Sprachen · PHP · Referenz · ldap_get_option

ldap_get_option

Funktion

Liest den aktuellen Wert einer LDAP-Option aus einer bestehenden Verbindung und schreibt ihn in die übergebene Variable.

seit PHP 4.0.4 Kategorie: misc

Signatur

ldap_get_option(LDAP\Connection $ldap, int $option, mixed &$value): bool

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

Typ
bool
Beschreibung
Gibt 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;
}
LDAP-Protokollversion: 3

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;
    }
}
Protokollversion: 3 Zeitlimit (Sekunden): 30 Größenlimit (Einträge): 100 Referrals verfolgen: 1

// 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.