Manuel PHP
Précédent |  | Suivant

# ldap_search

(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)

ldap_search -- Recherche dans tout l'arbre LDAP.

## Description

``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 en cas de succès, et `TRUE` sinon.

ldap_search() effectue une recherche avec le filtre `filter` dans le dossier `base_dn`, et avec l'option de récursivité 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 `base_dn` est toujours retourné, quelques que soient les attributs demandés.

Notez que certains serveurs 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. Cela arrivera aussi si le sixième paramètre `sizelimit` a été utilisé pour limiter le nombre de lignes lues.

Le cinquième paramètre `attrsonly` doit être mis à 1 si seuls les types d'attributs sont demandés. S'il est mis à 0, les types des attributs et leur valeur seront lue (comportement par défaut).

Le sixième paramètre `sizelimit` permet de limiter le nombre de lignes lues. 0 indique qu'il n'y a pas de limite. NOTE : ce paramètre ne peut PAS annuler la configuration du serveur. Il peut seulement la réduire.

Le septième paramètre `timelimit` fixe la durée de la recherche en seconde. 0 indique qu'il n'y a pas de limite. NOTE : ce paramètre ne peut PAS annuler la configuration du serveur. Il peut seulement la réduire.

Le huitième paramètre `deref` indique le comportement à suivre avec les alias durant une recherche. Sa valeur peut être l'une de celles-ci :

- LDAP_DEREF_NEVER - (par défaut) les alias ne sont pas déréférencés.

- LDAP_DEREF_SEARCHING - aliases sont déréférencés durant la recherche mais pas lors de leur localisation.

- LDAP_DEREF_FINDING - aliases sont déréférencés durant leur localisation mais pas lors de la recherche.

- LDAP_DEREF_ALWAYS - les alias sont toujours déréférencés.

Ces paramètres optionnels ont été ajoutés à partir de la version 4.0.2: `attrsonly`, `sizelimit`, `timelimit`, `deref`.

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
    <?php
    // $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>";
    ?>

Précédent | Sommaire | Suivant
ldap_rename | Niveau supérieur | ldap_set_option