7.47 LDAP
7 Index des fonctions
Manuel PHP
. Introduction . Pré-requis . Installation . Configuration à l'exécution . Types de ressources . Constantes prédefinies . Exemples . Utiliser les fonctions LDAP de PHP . ldap_8859_to_t61 . ldap_add . ldap_bind . ldap_close . ldap_compare . ldap_connect . ldap_count_entries . ldap_delete . ldap_dn2ufn . ldap_err2str . ldap_errno . ldap_error . ldap_explode_dn . ldap_first_attribute . ldap_first_entry . ldap_first_reference . ldap_free_result . ldap_get_attributes . ldap_get_dn . ldap_get_entries . ldap_get_option . ldap_get_values_len . ldap_get_values . ldap_list . ldap_mod_add . ldap_mod_del . ldap_mod_replace . ldap_modify . ldap_next_attribute . ldap_next_entry . ldap_next_reference . ldap_parse_reference . ldap_parse_result . ldap_read . ldap_rename ->ldap_search . ldap_set_option . ldap_set_rebind_proc . ldap_sort . ldap_start_tls . ldap_t61_to_8859 . ldap_unbind
|
7.47.44 ldap_search()Recherche sur le serveur LDAP[ Exemples avec ldap_search ] PHP 3, PHP 4
resource
ldap_search (
resource
link_identifier
,
string
base_dn
,
string
filter
,
array
attributes
,
int
attrsonly
,
int
sizelimit
,
int
timelimit
,
int
deref
)
ldap_search retourne un identifiant de résultat,
ou bien
FALSE
en cas d'erreur.
ldap_search
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.
base_dn
spécifie le DN de base du dossier.
Il y a un quatrième paramètre optionnel, qui peut être fourni pour
restreindre les attributs et valeurs retournées par le serveur,
afin de les adapter à vos besoins. C'est bien plus efficace que
le comportement par défaut (qui retourne tous les attributs et leurs
valeurs associées). L'utilisation de ce quatrième est donc vivement
recommandé.
Le quatrième paramtère est un tableau de chaînes PHP avec
les attributs demandé, comme par exemple :
array("mail","sn","cn")
. Notez que le
"dn"
est toujours retourné, indépendamment
des attributs demandés.
Notez aussi que certains serveurs de dossiers sont configurés pour
retourner un nombre limité d'entrées. Si
cette situation survient, le serveur indiquera qu'il a retourné un
résultat partiel. C'est aussi le cas si le sixième paramètre
sizelimit
a été utilisé pour limiter le nombre
d'entrées retournées.
Le cinquième paramètre
attrsonly
doit être
mis à 1 si seul les types d'attributs sont désirés. Si ce paramètre
est mis à 0, les types d'attributs et leurs valeurs seront retournées :
c'est le comportement par défaut.
Avec le sixième paramètre
sizelimit
, il est possible
de limiter le nombre d'entrées lues dans le résultat. En utilisant 0, on
indique qu'il n'y a pas de limite.
NOTE : ce paramètre NE peut PAS remplacer la configuration du serveur.
Vous pouvez au mieux baisser encore cette limite.
Le septième paramètre
timelimit
permet de spécifier
le nombre de secondes de duréee de la recherche. En utilisant la valeur
0, la recherche pourra durée indéfiniment.
NOTE : ce paramètre NE peut PAS remplacer la configuration du serveur.
Vous pouvez au mieux baisser encore cette limite.
Le huitième paramètre
deref
spécifie comment les
alias doivent être géré durant la rechercheé. Ce paramètre peut prendre
l'une des valeurs suivantes :
-
LDAP_DEREF_NEVER - (par défaut) les alias ne sont jamais déréférencés.
-
LDAP_DEREF_SEARCHING - les alias sont déréférencés durant la recherche,
mais pas durant la localisation du dossier de recherche.
-
LDAP_DEREF_FINDING - les alias sont déréférencés durant la localisation
du dossier de recherche, mais pas durant la recherche.
-
LDAP_DEREF_ALWAYS - les alias sont toujours déréférencés.
Note |
Ces paramètres optionnels ont été ajoutés en 4.0.2 :
attrsonly
,
sizelimit
,
timelimit
et
deref
.
|
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).
L'exemple ci-dessous lit le nom du service, le nom, le prénom et le
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.
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=Ma Compagnie, c=FR"; $filter="(|(sn=$person*)(givenname=$person*))"; $justthese = array( "ou", "sn", "givenname", "mail");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
print $info["count"]." entrées trouvées.<p>"; ?>
|
Depuis PHP 4.0.5, il est possible de faire des recherches paralelles. 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 etre de la même taille que le table de
ressources de connexion : la première entrée du tableau de ressources
sera utilisé avec le premier DN et le premier filtre, etc...
Lorsque vous faite une recherche paralelle, 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 retourne
FALSE
, alors qu'une
recherche en paralelle retourne un identifiant.
|