English | 简体中文 | 繁體中文
查询

ldap_search()函数—用法及示例

「 在指定的LDAP目录中执行搜索操作 」


函数名: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目录中执行搜索操作。它返回一个搜索结果资源,该资源可以用于后续的操作,如获取搜索结果条目。

参数:

  • $ldap:LDAP 连接标识符,由 ldap_connect() 函数返回。
  • $base_dn:指定搜索的基础DN(Distinguished Name),即搜索的起始位置。
  • $filter:指定搜索的过滤条件。可以是一个完整的过滤器字符串,也可以是一个简单的属性名。
  • $attributes(可选):指定要返回的属性列表,默认为空数组,表示返回所有属性。
  • $attrsonly(可选):指定是否只返回属性名,而不返回属性值。默认为0,表示返回属性名和属性值。
  • $sizelimit(可选):指定搜索结果的最大条目数,默认为0,表示没有限制。
  • $timelimit(可选):指定搜索的时间限制(以秒为单位),默认为0,表示没有限制。
  • $deref(可选):指定搜索过程中如何处理别名(alias)。可选值为LDAP_DEREF_NEVER、LDAP_DEREF_SEARCHING、LDAP_DEREF_FINDING和LDAP_DEREF_ALWAYS。

返回值:成功返回一个搜索结果资源,失败返回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 连接。

补充纠错
上一个函数: ldap_set_option()函数
下一个函数: ldap_sasl_bind()函数
热门PHP函数
分享链接