update page now
PHP 8.5.2 Released!

ldap_get_option

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

ldap_get_optionGet the current value for given option

说明

ldap_get_option(?LDAP\Connection $ldap, int $option, array|string|int &$value = null): bool

Sets value to the value of the specified option.

返回值

成功时返回 true, 或者在失败时返回 false

更新日志

版本 说明
8.5.0 ldap is now nullable.
8.1.0 现在 ldap 参数接受 LDAP\Connection 实例,之前接受有效的 ldap link resource

示例

示例 #1 Check protocol version

<?php
// $ds is a valid LDAP\Connection instance for a directory server
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
echo
"Using protocol version $version\n";
} else {
echo
"Unable to determine protocol version\n";
}
?>

注释

注意:

This function is only available when using OpenLDAP 2.x.x OR Netscape Directory SDK x.x.

参见

添加备注

用户贡献的备注 3 notes

up
9
Anonymous
9 years ago
Following on from Jeremy S's example. 
Instead of defining LDAP_OPT_DIAGNOSTIC_MESSAGE as 0x32 then using it, you can just use the option already defined as that value :)

LDAP_OPT_ERROR_STRING
up
6
Jeremy S
12 years ago
Here is how to tell if an Active Directory user account expired:

define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 0x0032);

ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($conn, LDAP_OPT_REFERRALS, 0);

$bind = ldap_bind($conn, $user, $pass);

ldap_get_option($conn, LDAP_OPT_DIAGNOSTIC_MESSAGE, $extended_error);

if (!empty($extended_error))
{
    $errno = explode(',', $extended_error)[2];
    $errno = explode(' ', $errno)[2];
    $errno = intval($errno);

    if ($errno == 532)
        $err = 'Unable to login: Password expired.';
}
up
0
Maarten
6 years ago
PHP 7.1 added support for configuring the LDAP CA/Cert environment directly, rather than relying on the environment variables. I noticed that a lot of people are having trouble getting this to work.

The correct way is:
$ds=ldap_connect("ldap.google.com");  
ldap_set_option(NULL, LDAP_OPT_X_TLS_CERTFILE, "/path/file.crt");
ldap_set_option(NULL, LDAP_OPT_X_TLS_KEYFILE, "/path/file.key");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
ldap_start_tls($ds);
...
ldap_close($ds);
To Top