函数名称:ldap_list()
适用版本:PHP 4, PHP 5, PHP 7
用法:ldap_list()函数用于在LDAP目录中执行搜索操作,并返回匹配搜索条件的所有条目的结果集。
语法:resource ldap_list ( resource $link_identifier , string $base_dn , string $filter [, array $attributes [, int $attrsonly [, int $sizelimit [, int $timelimit [, int $deref ]]]]] )
参数:
- $link_identifier:LDAP连接标识符,通过ldap_connect()函数获取。
- $base_dn:搜索的基准DN(Distinguished Name),表示从哪个节点开始搜索。
- $filter:搜索的过滤器,用于指定搜索条件。
- $attributes(可选):返回的属性列表,如果未指定,则返回所有属性。
- $attrsonly(可选):指定是否只返回属性名,不返回属性值。默认为0,表示同时返回属性名和属性值。
- $sizelimit(可选):指定返回结果的最大数目。默认为0,表示返回所有匹配的结果。
- $timelimit(可选):指定搜索操作的超时时间(单位:秒)。默认为0,表示无限制。
- $deref(可选):指定搜索操作时如何处理别名引用。可选值包括LDAP_DEREF_NEVER(不处理)、LDAP_DEREF_SEARCHING(搜索时处理)、LDAP_DEREF_FINDING(查找时处理)、LDAP_DEREF_ALWAYS(总是处理)。
返回值:成功时返回搜索结果的资源标识符(result identifier),失败时返回false。
示例:
<?php
$ldapconn = ldap_connect("ldap.example.com") or die("无法连接到LDAP服务器");
ldap_bind($ldapconn, "cn=admin,dc=example,dc=com", "password") or die("无法绑定到LDAP服务器");
$basedn = "ou=users,dc=example,dc=com";
$filter = "(objectclass=person)";
$attributes = array("cn", "email");
$search = ldap_list($ldapconn, $basedn, $filter, $attributes);
if ($search) {
$entries = ldap_get_entries($ldapconn, $search);
for ($i = 0; $i < $entries["count"]; $i++) {
echo "姓名: " . $entries[$i]["cn"][0] . "<br>";
echo "邮箱: " . $entries[$i]["email"][0] . "<br><br>";
}
} else {
echo "搜索失败";
}
ldap_close($ldapconn);
?>
以上示例演示了如何使用ldap_list()函数搜索LDAP目录中的人员条目,并返回姓名和邮箱属性。首先,通过ldap_connect()函数建立到LDAP服务器的连接。然后,使用ldap_bind()函数进行身份验证。接下来,指定搜索的基准DN、搜索过滤器和返回的属性列表,并调用ldap_list()函数执行搜索。如果搜索成功,通过ldap_get_entries()函数获取搜索结果的条目,并遍历输出每个条目的姓名和邮箱属性。最后,使用ldap_close()函数关闭LDAP连接。
请注意,此示例仅供参考,实际使用时需要根据LDAP服务器的配置和数据结构进行相应的调整。