ldap_get_option

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

ldap_get_option获取给定选项的当前值

说明

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

value 设置为指定选项的值。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 说明
8.1.0 现在 ldap 参数期望一个 LDAP\Connection 实例;以前,期望一个有效的 ldap link 资源

范例

示例 #1 检查协议版本

<?php
// $ds 是目录服务器的有效 LDAP\Connection 实例
if (ldap_get_option($ds, LDAP_OPT_PROTOCOL_VERSION, $version)) {
echo
"使用协议版本 $version\n";
} else {
echo
"无法确定协议版本\n";
}
?>

注释

注意:

此函数仅在使用 OpenLDAP 2.x.x 或 Netscape Directory SDK x.x 时可用。

参见

添加注释

用户贡献的注释 3 个注释

匿名
8 年前
接着 Jeremy S 的例子。
与其定义 LDAP_OPT_DIAGNOSTIC_MESSAGE 为 0x32 然后使用它,你可以直接使用已经定义为该值的选项 :)

LDAP_OPT_ERROR_STRING
Jeremy S
11 年前
以下是如何判断 Active Directory 用户帐户是否过期

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 = '无法登录:密码过期。';
}
Maarten
4 年前
PHP 7.1 添加了对直接配置 LDAP CA/Cert 环境的支持,而不是依赖环境变量。我注意到很多人都难以使它正常工作。

正确的方式是
$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