PHP Conference Nagoya 2025

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

Функция выполняет поиск по заданному фильтру filter в каталоге с областью действия LDAP_SCOPE_ONELEVEL.

Константа LDAP_SCOPE_ONELEVEL означает, что поиск вернёт только информацию с уровня непосредственно ниже уровня base, который задали при вызове. (Эквиваленто вводу команды ls и получению списка файлов и папок в текущем рабочем каталоге.)

Можно также выполнять параллельный поиск. В этом случае первым аргументом должен быть массив экземпляров LDAP\Connection, а не один экземпляр. Если поиск не должен использовать один и тот же базовый DN и фильтр, в качестве аргументов можно передать массив базовых DN и/или массив фильтров. Количество элементов в массивах должно совпадать с количеством экземпляров LDAP\Connection, поскольку первые записи массивов используются для одного поиска, вторые — для другого и так далее. При параллельном поиске возвращается массив экземпляров LDAP\Result, если только не возникла ошибка, при которой возвращается значение false.

Список параметров

ldap

Экземпляр класса LDAP\Connection, который возвращает функция ldap_connect().

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; раньше параметр ждал ресурс (resource) ldap link .
8.1.0 Возвращает экземпляр класса LDAP\Result; раньше возвращался ресурс (resource).
8.0.0 Параметр controls теперь допускает значение null; раньше значение по умолчанию равнялось [].
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];
}

?>

Смотрите также

  • ldap_search() - Выполняет поиск по LDAP-дереву

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top