ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

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

Внимание

Функция была объявлена УСТАРЕВШЕЙ в PHP 7.4.0 и УДАЛЕНА в PHP 8.0.0. Вместо нее следует использовать параметр controls в ldap_search(). Смотрите также Управляющие объекты 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 в случае возникновения ошибки.

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

Версия Описание
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.

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