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
 
