ldap_get_values

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

ldap_get_valuesLee todos los valores de una entrada LDAP

Descripción

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

Lee todos los valores del atributo de una entrada en un resultado.

La llamada a esta función requiere una entry y debe ser precedida por una búsqueda LDAP, y una de las funciones que permiten acceder a una entrada.

La aplicación debe contener información que permita leer ciertos atributos (como "nombre" o "mail"), o bien deberá utilizarse la función ldap_get_attributes() para saber cuáles son los atributos que existen para una entrada dada.

Parámetros

ldap

An LDAP\Connection instance, returned by ldap_connect().

entry

An LDAP\ResultEntry instance.

attribute

Valores devueltos

Devuelve un array de valores para el atributo, o false en caso de error. El número de valores devueltos está disponible en el índice 'count' del array devuelto. Los valores son accesibles individualmente, con los índices numéricos del array. La indexación comienza en 0.

LDAP permite más de una entrada por atributo, lo que permite almacenar varias direcciones de correo electrónico por persona, utilizando solo una etiqueta "mail":

    return_value["count"] = número de valores del atributo
    return_value[0] = primer valor del atributo
    return_value[i] = i-ésimo valor del atributo
    

Historial de cambios

Versión Descripción
8.1.0 The ldap parameter expects an LDAP\Connection instance now; previously, a valid ldap link recurso was expected.
8.1.0 The entry parameter expects an LDAP\ResultEntry instance now; previously, a valid ldap result entry recurso was expected.

Ejemplos

Ejemplo #1 Lista todas las valores del atributo "mail" de una entrada

<?php
// $ds debe ser una instancia de conexión LDAP\Connection válida

// $sr debe ser un recurso de resultado válido, obtenido con una de las funciones de
// búsqueda LDAP.

// $entry es una entrada LDAP válida, obtenida con una de las funciones
// LDAP que devuelve una entrada

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

echo
$values["count"] . " direcciones de correo para esta entrada.<br />";

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

Ver también

add a note

User Contributed Notes 2 notes

up
2
software at inebria dot com
24 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
1
viper_sb at IGETTOMUCHSPAMhotmail dot com
22 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