ldap_search
(PHP 4, PHP 5)
ldap_search — Recherche sur le serveur LDAP
Description
Effectue une recherche avec le filtre filter dans le dossier base_dn avec le param�trage LDAP_SCOPE_SUBTREE. C'est l'�quivalent d'une recherche dans le dossier.
Depuis PHP 4.0.5, il est possible de faire des recherches parall�les. Pour cela, vous devez utiliser un tableau de ressources de connexion comme premier argument, au lieu d'une ressource simple. Si vous ne voulez pas utiliser le m�me dossier de base DN et le m�me filtre pour toutes les recherches, vous pouvez aussi utiliser un tableau de DN et de filtres. Ces tableaux doivent alors �tre de la m�me taille que le tableau de ressources de connexion : la premi�re entr�e du tableau de ressources sera utilis�e avec le premier DN et le premier filtre, etc. Lorsque vous faites une recherche parall�le, un tableau de r�sultats est retourn�, sauf en cas d'erreur, auquel cas l'entr�e contiendra FALSE. C'est tr�s proche du comportement habituel, hormis le fait qu'un r�sultat est toujours retourn� lorsqu'une recherche est faite. Il y a de rares cas o� une recherche renvoie FALSE, alors qu'une autre en parall�le retourne un identifiant.
Liste de param�tres
- link_identifier
-
Un identifiant de lien LDAP, retourn� par la fonction ldap_connect().
- base_dn
-
La base DN pour le dossier.
- filter
-
Le filtre de recherche peut �tre simple ou avanc�, et utiliser ces op�rateurs bool�en au format d�crit dans la documentation LDAP (reportez-vous � » Netscape Directory SDK pour plus d'informations sur les filtres).
- attributes
-
Un tableau d'attributs requis, e.g. array("mail", "sn", "cn"). Notez que le "dn" est toujours retourn�, quelque soit le type de l'attribut demand�.
L'utilisation de ce param�tre est plus efficace que l'action par d�faut (qui est de retourner tous les attributs ainsi que leurs valeurs associ�es). L'utilisation de ce param�tre doit toutefois �tre consid�r� comme une bonne pratique.
- attrsonly
-
Doit �tre d�fini � 1 si seuls les types des attributs sont demand�s. S'il est d�fini � 0, les types et les valeurs des attributs sont r�cup�r�s, ce qui correspond au comportement par d�faut.
- sizelimit
-
Vous permet de limiter le nombre d'entr�es � r�cup�rer. Le fait de d�finir ce param�tre � 0 signifie qu'il n'y aura aucune limite.
Note: Ce param�tre ne peut pas �craser la configuration c�t� serveur. Vous pouvez cependant positionner une valeur inf�rieure.
Quelques dossiers serveurs peuvent �tre configur�s afin de ne retourner qu'un nombre d'entr�es donn�es. Si ce comportement survient, le serveur indique qu'il n'a retourn� qu'un jeu de r�sultats partiel. Ce comportement intervient �galement si vous utilisez ce param�tre pour limiter le nombre d'entr�es r�cup�r�es.
- timelimit
-
D�finit le nombre maximal de secondes permis pour la recherche. Le fait de d�finir ce param�tre � 0 signifie qu'il n'y a pas de limite.
Note: Ce param�tre ne peut pas �craser la configuration c�t� serveur mais vous pouvez l'utiliser pour �tre plus restrictif.
- deref
-
Sp�cifie le nombre d'alias qui doivent �tre g�r�s pendant la recherche. Il peut �tre un parmi les suivants :
- LDAP_DEREF_NEVER - (d�faut) les alias ne sont jamais d�r�f�renc�s. dereferenced.
- LDAP_DEREF_SEARCHING - les alias doivent �tre d�r�f�renc�s pendant la recherche mais pas lors de la localisation de l'objet de base de la recherche.
- LDAP_DEREF_FINDING - les alias doivent �tre d�r�f�renc�s lors de la localisation de l'objet de base mais pas durant la recherche.
- LDAP_DEREF_ALWAYS - les alias doivent toujours �tre d�r�f�renc�s.
Valeurs de retour
Retourne un identifiant de recherche ou FALSE si une erreur survient.
Historique
Version | Description |
---|---|
4.0.5 | Les recherches parall�les ont �t� ajout�es. |
4.0.2 | Les param�tres attrsonly , sizelimit , timelimit et deref on �t� ajout�s. |
Exemples
L'exemple ci-dessous lit le nom du service, le nom, le pr�nom et l'email des employ�s de la soci�t� "Ma Compagnie", dont le nom ou le pr�nom contient la sous-cha�ne : $person. Cet exemple illustre l'utilisation de filtres pour indiquer au serveur de faire une recherche sur deux attributs.
Exemple #1 Recherche LDAP
<?php
// $ds doit �tre une ressource de connexion valide
// $person est un nom ou une partie de nom (par exemple, "Jean")
$dn = "o=My Company, c=US";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." entries returned\n";
?>