ldap_get_values

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

ldap_get_valuesПолучает все значения из записи результата

Описание

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

Читает все значения атрибута в записи результата.

Эта функция требует entry, а следовательно, перед ней должны быть запущена одна из функций ldap поиска и один из результатов их вызова для получения отдельной записи.

В создаваемом приложении необходимо будет использовать сложные конструкции для поиска определённых атрибутов (таких как "фамилия" или "почта") или необходимо будет использовать функцию ldap_get_attributes(), чтобы разобрать, какие атрибуты существуют для данной записи.

Список параметров

ldap

Экземпляр LDAP\Connection, который возвращает функция ldap_connect().

entry

Экземпляр LDAP\ResultEntry.

attribute

Возвращаемые значения

Возвращает массив значений для атрибута в случае успешного выполнения или false в случае возникновения ошибки. Число значений может быть найдено по индексу "count" в результирующем массиве. Отдельные значения могут быть доступны по целочисленным индексам в массиве. Первый индекс 0.

LDAP позволяет хранить больше чем одну запись для атрибута, таким образом, можно, например, сохранить много адресов электронной почты для записи каталога одного человека, все маркированные атрибутом "mail"

     return_value["count"] = число значений атрибута
     return_value[0] = первое значение атрибута
     return_value[i] = i-ое значение атрибута 
    

Список изменений

Версия Описание
8.1.0 Параметр ldap теперь ожидает экземпляр LDAP\Connection; ранее ожидался ресурс (resource) ldap link .
8.1.0 Параметр entry теперь ожидает экземпляр LDAP\ResultEntry; ранее ожидался ресурс (resource) ldap result entry.

Примеры

Пример #1 Список всех значений атрибута "mail" для записи каталога

<?php
// $ds допустимый экземпляр LDAP\Connection

// $sr верный результат поиска в директории ldap

// $entry верный идентификатор записи из вызова функции
// вернувшей запись директории

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

echo
$values["count"] . " адреса email для этой записи.<br />";

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

Смотрите также

  • ldap_get_values_len() - Получить все бинарные значения из записи результата

add a note 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