ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_resultПослать серверу LDAP данные для использования постраничного извлечения результата

Внимание

Функцию объявили УСТАРЕВШЕЙ в PHP 7.4.0 и УДАЛИЛИ в PHP 8.0.0. Вместо этой функции вызывают функцию ldap_search() с передачей в параметр controls управляющих объектов протокола LDAP. Раздел «Управляющие объекты LDAP» даёт дополнительную информацию.

Описание

ldap_control_paged_result(
    resource $link,
    int $pagesize,
    bool $iscritical = false,
    string $cookie = ""
): bool

Разрешает работу с LDAP в постраничном режиме, путём отправки желаемых настроек (размер страницы, куки и т.д.)

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

link

Ресурс LDAP, возвращаемый функцией ldap_connect().

pagesize

Количество записей на страницу.

iscritical

Определяет, является ли постраничный режим критичным или нет. Если true и если сервер не поддерживает постраничную работу, поиск вернёт пустой результат.

cookie

Непрозрачная структура, посылаемая сервером (ldap_control_paged_result_response()).

Возвращаемые значения

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 Функция была удалена.
7.4.0 Функция объявлена устаревшей.

Примеры

Пример ниже демонстрирует извлечение первой страницы результата поиска с использованием размера страницы равного одной записи.

Пример #1 Постраничная работа с LDAP

<?php
// $ds - идентификатор соединения (смотрите ldap_connect)
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

// разрешаем постраничную работу с размером страницы равному одной записи.
ldap_control_paged_result($ds, 1);

$sr = ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo
$info['count'] . ' записей возвращено' . PHP_EOL;

Пример ниже демонстрирует извлечение первой страницы результата поиска с использованием размера страницы равного ста записям.

Пример #2 Постраничная работа с LDAP

<?php
// $ds - идентификатор соединения (смотрите ldap_connect)
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');

// разрешаем постраничную работу с размером страницы равному ста записям.
$pageSize = 100;

$cookie = '';
do {
ldap_control_paged_result($ds, $pageSize, true, $cookie);

$result = ldap_search($ds, $dn, $filter, $justthese);
$entries = ldap_get_entries($ds, $result);

foreach (
$entries as $e) {
echo
$e['dn'] . PHP_EOL;
}

ldap_control_paged_result_response($ds, $result, $cookie);

} while(
$cookie !== null && $cookie != '');

Примечания

Замечание:

Постраничный режим появился в версии протокола LDAPv3.

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