PHP 8.3.4 Released!

ldap_get_values

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_get_valuesLit toutes les valeurs d'une entrée LDAP

Description

ldap_get_values(LDAP\Connection $ldap, LDAP\ResultEntry $entry, string $attribute): array|false

Lit toutes les valeurs de l'attribut d'une entrée dans un résultat.

L'appel de cette fonction requiert une entry et doit donc être précédée d'une recherche LDAP, et de l'une des fonctions permettant d'accéder à une entrée.

Votre application doit contenir des informations permettant de lire certains attributs (comme "nom" ou "mail"), ou bien vous devrez utiliser la fonction ldap_get_attributes() pour savoir quels sont les attributs qui existent pour une entrée donnée.

Liste de paramètres

ldap

Une instance LDAP\Connection, retourné par ldap_connect().

entry

Une instance LDAP\ResultEntry.

attribute

Valeurs de retour

Retourne un tableau de valeurs pour l'attribut, ou false en cas d'erreur. Le nombre de valeurs retournées est disponible à l'index 'count' du tableau retourné. Les valeurs sont accessibles individuellement, avec les index numériques du tableau. L'indexation commence à 0.

LDAP permet plus d'une entrée par attribut, ce qui permet de stocker plusieurs adresses emails par personne, tout en n'utilisant qu'une étiquette "mail" :

    return_value["count"] = nombre de valeurs de l'attribut
    return_value[0] = première valeur de l'attribut
    return_value[i] = i-ième valeur de l'attribut
    

Historique

Version Description
8.1.0 Le paramètre ldap attend désormais une instance de LDAP\Connection ; auparavant, une ressource ldap link était attendue.
8.1.0 Le paramètre entry attend désormais une instance de LDAP\ResultEntry ; auparavant, une ressource ldap result entry était attendue.

Exemples

Exemple #1 Liste toutes les valeurs de l'attribut "mail" d'une entrée

<?php
// $ds doit être une instance de connexion LDAP\Connection valide

// $sr doit être une ressource de résultat valide, obtenue avec une des fonctions de
// recherche LDAP.

// $entry est une entrée LDAP valide, obtenue avec une des fonctions
// LDAP qui retourne une entrée

$values = ldap_get_values($ds, $entry,"mail");

echo
$values["count"] . " adresses email pour cette entrée.<br />";

for (
$i=0; $i < $values["count"]; $i++) {
echo
$values[$i] . "<br />";
}
?>

Voir aussi

add a note

User Contributed Notes 2 notes

up
2
software at inebria dot com
22 years ago
It wasn't immediately obvious to me that the ldap_get_values function does not work with binary data - only strings. If you fetch binary data with ldap_get_values you don't get a warning - just some trash. For binary data you have to use ldap_get_values_len.
up
0
viper_sb at IGETTOMUCHSPAMhotmail dot com
20 years ago
Well this took me a while to find the problem, so I'm posting in case someone else runs in to this.

$sr = ldap_search($ds, "cn=me", "(objectclass=*)");
$entry = ldap_first_entry($ds, $sr);
do {
// do other stuff
$sr = "something else now";
$values = ldap_get_values($ds, $entry, "attirib1");
// do other stuff
} while ($entry = ldap_next_entry($ds, $entry));

If you change the search resource $sr to something else even though it's not used again it will kill the page it'll be a blank page and if you view the code you'll get different things depending on something no idea what.

This kepted happening I had forgotten I had used $sr so I was using it again and it would just not show the page whenever I used ldap_get_values, if this is a feature it would be nice to know. I haven't seen it happen with other functions.
To Top