函数名:ldap_search()
适用版本:PHP 4, PHP 5, PHP 7
用法:ldap_search(resource $ldap, string $base_dn, string $filter, array $attributes = [], int $attrsonly = 0, int $sizelimit = 0, int $timelimit = 0, int $deref = LDAP_DEREF_NEVER) : resource|false
说明:ldap_search() 函数用于在指定的LDAP目录中执行搜索操作。它返回一个搜索结果资源,该资源可以用于后续的操作,如获取搜索结果条目。
参数:
返回值:成功返回一个搜索结果资源,失败返回false。
示例:
// 连接到LDAP服务器
$ldap = ldap_connect('ldap://ldap.example.com');
if ($ldap) {
// 绑定到LDAP服务器
$bind = ldap_bind($ldap, 'cn=admin,dc=example,dc=com', 'password');
if ($bind) {
// 执行搜索操作
$result = ldap_search($ldap, 'dc=example,dc=com', '(&(objectClass=person)(sn=Smith))');
if ($result) {
// 获取搜索结果条目数
$count = ldap_count_entries($ldap, $result);
echo "搜索到 {$count} 条结果\n";
// 遍历搜索结果
$entries = ldap_get_entries($ldap, $result);
for ($i = 0; $i < $entries['count']; $i++) {
echo "DN: {$entries[$i]['dn']}\n";
echo "姓: {$entries[$i]['sn'][0]}\n";
echo "名: {$entries[$i]['givenname'][0]}\n";
echo "邮箱: {$entries[$i]['mail'][0]}\n";
echo "电话: {$entries[$i]['telephonenumber'][0]}\n";
echo "\n";
}
} else {
echo "搜索失败\n";
}
// 关闭LDAP连接
ldap_close($ldap);
} else {
echo "绑定失败\n";
}
} else {
echo "连接失败\n";
}
以上示例连接到 LDAP 服务器,绑定到管理员账户,然后执行了一个搜索操作,搜索条件是找出姓为 "Smith" 的人员。搜索结果包含了满足条件的所有条目,并打印出了每个条目的 DN、姓、名、邮箱和电话信息。最后关闭了 LDAP 连接。