ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_resultEnvía un control de paginación LDAP

Advertencia

This function has been DEPRECATED as of PHP 7.4.0, and REMOVED as of PHP 8.0.0. Instead the controls parameter of ldap_search() should be used. See also LDAP Controls for details.

Descripción

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

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

Parámetros

link

Un recurso 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 true, y si el servidor no soporta la 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.

Historial de cambios

Versión Descripción
8.0.0 Esta función ha sido eliminada.
7.4.0 Esta función se ha vuelto obsoleta.

Ejemplos

El ejemplo siguiente muestra la manera de recuperar la primera página de una búsqueda paginada con una sola entrada por página.

Ejemplo #1 Paginación LDAP

<?php
// $ds es un identificador de enlace válido (ver 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');

// activa 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 ejemplo siguiente muestra la manera de recuperar todos los resultados paginados con 100 entradas por página.

Ejemplo #2 Paginación LDAP

<?php
// $ds es un identificador de enlace válido (ver 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');

// activa 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 funcionalidad del protocolo LDAPv3.