ldap_control_paged_result
(PHP 5 >= 5.4.0, PHP 7)
ldap_control_paged_result — Envoi un contrôle de pagination LDAP
Avertissement
Cette fonction est OBSOLÈTE à partir de PHP 7.4.0,
et SUPPRIMÉE à partir de PHP 8.0.0.
À la place le paramètre controls
de ldap_search() devrait être utilisée.
Voir les Contrôles LDAP pour plus d'information.
Liste de paramètres
-
link
-
Une ressource LDAP, retourné par 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 fonctionnalité du protocole LDAPv3.