ldap_get_values

(PHP 4, PHP 5, PHP 7)

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

Описание

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

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

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

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

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

link_identifier

Идентификатор ссылки LDAP, возвращенный ldap_connect().

result_entry_identifier

attribute

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

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

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

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

Примеры

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

<?php
// $ds верный идентификатор ссылки на сервер директории

// $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
16 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
14 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