ldap_control_paged_result
(PHP 5 >= 5.4.0)
ldap_control_paged_result — Envoi un contrôle de pagination LDAP
Description
$link
, int $pagesize
[, bool $iscritical
= false
[, string $cookie
= ""
]] )Active la pagination LDAP en envoyant le contrôle de pagination (taille de la page, cookie,...).
Liste de paramètres
-
link
-
Un identifiant de lien LDAP, retourné par la fonction ldap_connect().
-
pagesize
-
Le nombre d'entrées par page.
-
iscritical
-
Indique si la pagination est critique ou non. Si vaut
TRUE
, et si le serveur ne supporte pas la pagination, la recherche ne retournera aucun résultat. -
cookie
-
Une structure opaque envoyée par le serveur ( ldap_control_paged_result_response()).
Valeurs de retour
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemples
L'exemple ci-dessous montre la manière pour récupérer la première page d'une recherche paginée avec une seule entrée par page.
Exemple #1 Pagination LDAP
<?php // $ds est un identifiant de lien valide (voir 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'); // active la pagination avec une taille de page à 1. ldap_control_paged_result($ds, 1); $sr = ldap_search($ds, $dn, $filter, $justthese); $info = ldap_get_entries($ds, $sr); echo $info['count'] . ' entrées retournées' . PHP_EOL;
L'exemple ci-dessous montre la manière pour récupérer tous les résultats paginés avec 100 entrées par page.
Exemple #2 Pagination LDAP
<?php // $ds est un identifiant de lien valide (voir 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'); // active la pagination avec une taille de page à 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 != '');
Notes
Note:
Le contrôle de la pagination est une fonctionalité du protocole LDAPv3.
Voir aussi
- ldap_control_paged_result_response() - Récupère le cookie de pagination LDAP
- » RFC2696 : Extension de contrôle LDAP pour une manipulation simplifiée des résultats paginés