ldap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_list单层级搜索

描述

ldap_list(
    LDAP\Connection|array $ldap,
    array|string $base,
    array|string $filter,
    array $attributes = [],
    int $attributes_only = 0,
    int $sizelimit = -1,
    int $timelimit = -1,
    int $deref = LDAP_DEREF_NEVER,
    ?array $controls = null
): LDAP\Result|array|false

使用范围 LDAP_SCOPE_ONELEVEL 对目录执行指定 filter 的搜索。

LDAP_SCOPE_ONELEVEL 表示搜索应仅返回紧邻 base 下一层的条目信息。(相当于在命令行中输入 "ls" 命令并获取当前工作目录中的文件和文件夹列表。)

还可以执行并行搜索。在这种情况下,第一个参数应为 LDAP\Connection 实例数组,而不是单个实例。如果搜索不应都使用相同的基 DN 和过滤器,则可以传递基 DN 数组和/或过滤器数组作为参数。这些数组的大小必须与 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

指定在搜索过程中如何处理别名。它可以是以下之一:

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];
}
?>

参见

添加备注

用户贡献备注

此页面没有用户贡献的备注。
To Top