Oui tu peux avec ldap_search... UN code complet avec connexion (manque la déconnexion mais bon)
$ds = ldap_connect("ldap://".AD_DC.".".AD_DOMAIN) or die("Erreur de connexion à AD!");
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
if ($ds) {
// Connexion avec une identité qui permet les modifications
// if (ldap_bind($ds, AD_USER."@".AD_DOMAIN, AD_PASS)) {echo RL."identification ok".RL; }
if (ldap_bind($ds, "nom_entreprise"."@".AD_DOMAIN, "taper_password")) {echo RL."identification ok".RL; }
else { echo RL."Problème d'identification ";}
// On va chercher l'identifiant DN exact de la personne à modifier.
//On indique ce qu'il faut pour recherhcer
//La présence des intiales est uniquement la comme test.
$dn = "OU=Users nom_entreprise,".BASE_DN;
$person="fred";
$filter="(|(sn=$person*)(givenname=$person*))";
$justthese = array("dn","initials");
//On lance la recherche
$sr=ldap_search($ds, $dn, $filter, $justthese);
//On cherche dans le résultat le dn
$info = ldap_get_entries($ds, $sr);
//var_dump($info);
$dn = $info[0]['dn'];
if (is_string($info[0]['initials'][0]) == false) {$initiale = $info[0]['initials'][0];echo "défini";}
else { $initiale ="";echo "pas défini"; }
//Echo qui permet de tester, RL est un retour à la ligne
echo RL."dn : $dn";
echo RL."initial : $initiale".RL;