CascadiaPHP 2024

ldap_get_values

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

ldap_get_valuesObtém todos os valores de uma entrada de resultado

Descrição

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

Lê todos os valores do atributo na entrada do resultado.

Esta função usa uma entrada informada no parâmetro entry, portanto precisa ser precedidade por uma das funções de pesquisa LDAP e uma das funções de obtenção de uma entrada individual.

A aplicação poderá ser codificada especificamente para pesquisar por certos atributos (como "surname" ou "mail") ou pode-se usar a função ldap_get_attributes() para descobrir quais atributos existem para uma entrada informada.

Parâmetros

ldap

Uma instância de LDAP\Connection, retornada por ldap_connect().

entry

Uma instância de LDAP\ResultEntry.

attribute

Valor Retornado

Retorna um array de valores para o atributo em caso de sucesso ou false em caso de erro. O número de valores pode ser encontrado indexando-se "count" no array resultante. Valores individuais são acessados por índice inteiro no array. O primeiro índice é 0.

LDAP permite mais de um valor por atributo, por isso pode, por exemplo, armazenar um número de endereços de e-mail para uma entrada de diretório de uma pessoa, todos etiquetados com o atributo "mail".

    return_value["count"] = número de valores para o atributo
    return_value[0] = primeiro valor do atributo
    return_value[i] = (i+1)-ésimo valor do atributo
    

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro ldap agora espera uma instância de LDAP\Connection; anteriormente, um resource ldap link válido era esperado.
8.1.0 O parâmetro entry agora espera uma instância de LDAP\ResultEntry; anteriormente, um resource ldap result entry válido era esperado.

Exemplos

Exemplo #1 Lista todos os valores do atributo "mail" para uma entrada de diretório

<?php
// $ds é uma instância válida de LDAP\Connection para um servidor de diretório

// $sr é um resultado de pesquisa válido de uma chamada anterior a
// uma das funções de pesquisa de diretório LDAP

// $entry é um identificador válido de uma entrada de uma chamada anterior a
// uma das funções que retornam uma entrada de diretório

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

echo
$values["count"] . " endereços de e-mail para esta entrada.<br />";

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

Veja Também

add a note

User Contributed Notes 2 notes

up
2
software at inebria dot com
23 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