ldap_search

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

ldap_search — Пошук по LDAP дереву

Опис

ldap_search(    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_SUBTREE. Еквівалентний пошук по всьому каталогу.

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

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

ldap

Екземпляр LDAP\Connection, що повертається функцією ldap_connect()

base

Базове DN для каталогу.

filter

Пошуковий фільтр може бути простим або розширеним, використовуючи логічні оператори у форматі, описаному в документації LDAP (див. » Netscape Directory SDK або » RFC4515 для повної інформації про фільтри).

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; раніше очікувався ресурс (resourceldap link
8.1.0Повертає екземпляр LDAP\Result; раніше повертався ресурс (resource
8.0.0controls тепер припускає значення null; раніше значення за умовчанням було []
7.3.0Додано підтримку параметра controls

Приклади

Приклад нижче отримує організаційну одиницю, прізвище, ім'я та адресу електронної пошти для всіх людей у ​​My Company, де прізвище або ім'я містять підрядок $person. Цей приклад використовує логічний фільтр, щоб сказати серверу, що потрібно шукати більше інформації, ніж в одному атрибуті.

Приклад #1 LDAP пошук

Loading...