ldap_control_paged_result

(PHP 5 >= 5.4.0)

ldap_control_paged_result — Enviar el control de paginación LDAP

Descripción

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

Activa la paginación LDAP enviando el control de paginación (tamaño de página, cookie...).

Parámetros

link

Un identificador de enlace LDAP, devuelto por ldap_connect().

pagesize

El número de entradas por página.

iscritical

Indica si la paginación es crítica o no. Si es crítica y el servidor no soporta paginación, la búsqueda no devolverá ningún resultado.

cookie

Una estructura opaca enviada por el servidor (ldap_control_paged_result_response()).

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

Ejemplos

El siguiente ejemplo muestra la recuperación de la primera página de una búsqueda paginada con una entrada por página.

Ejemplo #1 Paginación LDAP

<?php
     
// $ds es un identificador de enlace válido (véase ldap_connect)
     
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

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

     
// activar la paginación con un tamaño de página de 1.
     
ldap_control_paged_result($ds, 1);

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

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

     echo 
$info['count'] . ' entradas devueltas' . PHP_EOL;

El siguiente ejemplo muestra la recuperación de todos los resultados paginados con 100 entradas por página.

Ejemplo #2 Paginación LDAP

<?php
     
// $ds es un identificador de enlace válido (véase ldap_connect)
     
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);

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

     
// activar la paginación con un tamaño de página de 100.
     
$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 != '');

Notas

Nota:

El control de paginación es una característica del protocolo LDAPv3.