PHP Conference Japan 2024

ldap_list

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

ldap_list单级搜索

描述

ldap_list(
    LDAP\Connection|数组 $ldap,
    数组|字符串 $base,
    数组|字符串 $filter,
    数组 $attributes = [],
    整数 $attributes_only = 0,
    整数 $sizelimit = -1,
    整数 $timelimit = -1,
    整数 $deref = LDAP_DEREF_NEVER,
    ?数组 $controls = null
): LDAP\Result|数组|false

使用范围为 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

指定在搜索期间如何处理别名。它可以是以下之一

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