ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

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

Описание

bool ldap_control_paged_result ( resource $link , int $pagesize [, bool $iscritical = FALSE [, string $cookie = "" ]] )

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

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

link

Идентификатор соединения LDAP, возвращенный ldap_connect().

pagesize

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

iscritical

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

cookie

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

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

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

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

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

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

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

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

     
$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($dsLDAP_OPT_PROTOCOL_VERSION3);

     
$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$pageSizetrue$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.

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