CakeFest 2024: The Official CakePHP Conference

ldap_get_values

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

ldap_get_valuesObtener todos los valores de una entrada de resultados

Descripción

ldap_get_values(resource $link_identifier, resource $result_entry_identifier, string $attribute): array

Lee todos los valores del atributo en la entrada en el resultado.

Esta llamada necesita un result_entry_identifier, tal que sea precedido por una de las llamadas de búsqueda de ldap y una de las llamadas para obtener una entrada individual.

Su solicitud será fuertemente codificada para buscar ciertos atributos (tales como "apellido" o "correo"), o tendrá que utilizar la llamada ldap_get_attributes() para resolver qué atributos existen para una entrada dada.

Parámetros

link_identifier

Un identificador de enlace de LDAP, devuelto por ldap_connect().

result_entry_identifier

attribute

Valores devueltos

Devuelve un arreglo de valores para el atributo en caso de éxito y false en caso de error. El número de valores puede ser hallado indexando "count" en el arreglo resultante. Los valores individuales son accedidos por un índice entero en el arreglo. El índice primero es 0.

LDAP permite más de una entrada para un atributo, así que puede, por ejemplo, almacenar un número de direcciones para la entrada de directorio de una persona etiquetado con el atributo "correo"

    return_value["count"] = Número de valores para el atributo
    return_value[0] = Primer valor del atributo
    return_value[i] = i-ésimo valor del atributo
    

Ejemplos

Ejemplo #1 Listar todos los valores del atributo "correo" para una entrada de directorio

<?php
// $ds es un identificador de enlace válido para un servidor de directorio

// $sr es un resultado de búsqueda válido de una llamada previa a
// una de las llamadas de búsqueda de directorio ldap

// $entry es un identificador de entrada válido de una llavada previa a
// una de las llamadas que devuelve una entrada de directorio

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

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
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
21 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