int ldap_search(int link_identifier, string base_dn, string filter, array [attributes]);
Retourne un identifiant de résultat en cas de succès, et false sinon
ldap_search() effectue une recherche avec le filtre filter dans le dossier base_dn , et avec l'option de récurisivité LDAP_SCOPE_SUBTREE. Cela revient à rechercher dans toute la base sous le dossier base_dn
Le quatrième paramètre est optionnel, et peut être ajouté pour restreindre les attributs et les valeurs retournées. Il est beaucoup plus efficace que la méthode qui consiste à lire tous les attributs et leur valeurs associées. L'utilisation de ce quatrième paramètre est encouragé.
Le quatrième paramètre est un tableau de chaînes, qui contient les attributs désirés, array("mail","sn","cn") Notez que le "nd" et toujours retourné, quelque cois les attributs demandés.
Notez que certainsserveur sont configurés pour limiter le nombre de résultats. Si cela arrive, le serveur indiquera qu'il n'a transféré qu'une partie du résultat.
La chaîne de filtre peut être simple ou complexe. Elle utilise les opérateurs booléens au même format que celui décrit dans les documentations LDAP. (Allez voir celle de Netscape Directory SDK pour plus d'informations sur les filtres).
L'exemple suivant récupère toutes les unités organisationnelles, le nom, prénom et email, dans la société "Ma Société" où le nom et prénom contiennent la sous chaîne $person. Cet exemple utilise un filtre booléen pour indiquer au serveur qu'il doit rechercher des informations dans plusieurs attributs.
Exemple 1. Recherche LDAP // $ds est un identifiant valide de connexion à un serveur LDAP // $person est tout ou une partir d'un nom $dn = "o=Ma Société, 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 retournées.<p>"; |