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.0 | controls тепер припускає значення null; раніше значення за умовчанням було [] |
7.3.0 | Додано підтримку параметра controls |
Приклади
Приклад нижче отримує організаційну одиницю, прізвище, ім'я та адресу електронної пошти для всіх людей у My Company, де прізвище або ім'я містять підрядок $person. Цей приклад використовує логічний фільтр, щоб сказати серверу, що потрібно шукати більше інформації, ніж в одному атрибуті.
Приклад #1 LDAP пошук
Loading...