(PHP 4, PHP 5, PHP 7, PHP 8)
ldap_list — 单级搜索
$ldap
,$base
,$filter
,$attributes
= [],$attributes_only
= 0,$sizelimit
= -1,$timelimit
= -1,$deref
= LDAP_DEREF_NEVER
,$controls
= null
使用范围为 LDAP_SCOPE_ONELEVEL
在目录中执行对指定 filter
的搜索。
LDAP_SCOPE_ONELEVEL
表示搜索应该只返回在调用中给定的 base
的下一级的信息。(相当于键入“ls”并获取当前工作目录中文件和文件夹的列表。)
也可以执行并行搜索。在这种情况下,第一个参数应该是一个 LDAP\Connection 实例的数组,而不是单个实例。如果搜索不应该都使用相同的 base DN 和 filter,则可以将 base DN 数组和/或 filter 数组作为参数传递。这些数组的大小必须与 LDAP\Connection 实例数组相同,因为数组的第一个条目用于一个搜索,第二个条目用于另一个搜索,依此类推。在执行并行搜索时,将返回一个 LDAP\Result 实例的数组,但在发生错误的情况下,返回值将为 false
。
ldap
一个由 ldap_connect() 返回的 LDAP\Connection 实例。
base
目录的基本 DN。
filter
attributes
所需的属性数组,例如 array("mail", "sn", "cn")。请注意,无论请求哪些属性类型,“dn”始终会被返回。
使用此参数比默认操作(即返回所有属性及其关联的值)效率更高。因此,应将使用此参数视为良好实践。
attributes_only
如果只需要属性类型,则应将其设置为 1。如果设置为 0,则获取属性类型和属性值,这是默认行为。
sizelimit
使您能够限制获取的条目数量。将其设置为 0 表示没有限制。
注意:
此参数不能覆盖服务器端预设的 sizelimit。不过,您可以将其设置得更低。
某些目录服务器主机将被配置为最多返回预设数量的条目。如果发生这种情况,服务器将指示它仅返回了部分结果集。如果您使用此参数来限制获取的条目数量,也会发生这种情况。
timelimit
设置搜索花费的秒数。将其设置为 0 表示没有限制。
注意:
此参数不能覆盖服务器端预设的 timelimit。不过,您可以将其设置得更低。
deref
指定在搜索期间如何处理别名。它可以是以下之一
LDAP_DEREF_NEVER
- (默认)从不取消别名引用。
LDAP_DEREF_SEARCHING
- 在搜索期间应取消别名引用,但在定位搜索的基本对象时除外。
LDAP_DEREF_FINDING
- 在定位基本对象时应取消别名引用,但在搜索期间除外。
LDAP_DEREF_ALWAYS
- 应始终取消别名引用。
controls
要与请求一起发送的 LDAP 控制 数组。
返回一个 LDAP\Result 实例、一个 LDAP\Result 实例的数组或在失败时返回 false
。
版本 | 描述 |
---|---|
8.1.0 | ldap 参数现在期望一个 LDAP\Connection 实例;以前,期望一个有效的 ldap link 资源。 |
8.1.0 | 现在返回一个 LDAP\Result 实例;以前,返回一个 资源。 |
8.0.0 |
controls 现在可以为空;以前,它默认为 [] 。 |
7.3.0 | 添加了对 controls 的支持 |
示例 #1 生成组织的所有组织单元列表
<?php
// $ds 是一个有效的 LDAP\Connection 实例,用于目录服务器
$basedn = "o=My Company, c=US";
$justthese = array("ou");
$sr = ldap_list($ds, $basedn, "ou=*", $justthese);
$info = ldap_get_entries($ds, $sr);
for ($i=0; $i < $info["count"]; $i++) {
echo $info[$i]["ou"][0];
}
?>