ldap_get_values
(PHP 4, PHP 5)
ldap_get_values — Получает все значения из записи результата
Описание
$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 />";
}
?>
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие службы
- Облегчённый протокол доступа к каталогам (LDAP)
- ldap_8859_to_t61
- ldap_add
- ldap_bind
- ldap_close
- ldap_compare
- ldap_connect
- ldap_control_paged_result_response
- ldap_control_paged_result
- ldap_count_entries
- ldap_delete
- ldap_dn2ufn
- ldap_err2str
- ldap_errno
- ldap_error
- ldap_escape
- ldap_explode_dn
- ldap_first_attribute
- ldap_first_entry
- ldap_first_reference
- ldap_free_result
- ldap_get_attributes
- ldap_get_dn
- ldap_get_entries
- ldap_get_option
- ldap_get_values_len
- ldap_get_values
- ldap_list
- ldap_mod_add
- ldap_mod_del
- ldap_mod_replace
- ldap_modify_batch
- ldap_modify
- ldap_next_attribute
- ldap_next_entry
- ldap_next_reference
- ldap_parse_reference
- ldap_parse_result
- ldap_read
- ldap_rename
- ldap_sasl_bind
- ldap_search
- ldap_set_option
- ldap_set_rebind_proc
- ldap_sort
- ldap_start_tls
- ldap_t61_to_8859
- ldap_unbind
Коментарии
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.
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.