(PHP 5 >= 5.4.0, PHP 7)
ldap_control_paged_result — Enviar el control de paginación LDAP
$link
, int $pagesize
[, bool $iscritical
= false
[, string $cookie
= ""
]] ) : boolActiva la paginación LDAP enviando el control de paginación (tamaño de página, cookie...).
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()).
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
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 != '');
Nota:
El control de paginación es una característica del protocolo LDAPv3.