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.ldap_get_values
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ldap_get_values
Референца за `function.ldap-get-values.php` со подобрена типографија и навигација.
ldap_get_values
(PHP 4, PHP 5, PHP 7, PHP 8)
ldap_get_values — Земи ги сите вредности од записот во резултатот
= NULL
Ги чита сите вредности на атрибутот во записот во резултатот.
Овој повик бара entry, така што мора да му претходи еден од повиците за ldap пребарување и еден од повиците за добивање на поединечен запис.
Вашата апликација или ќе биде тврдо кодирана да бара одредени атрибути (како што се "surname" или "mail") или ќе мора да го користите ldap_get_attributes() повикот за да откриете кои атрибути постојат за даден запис.
Параметри
ldap-
Еден LDAP\Connection инстанца, вратена од ldap_connect().
entry-
Еден LDAP\ResultEntry instance.
attribute-
Вратени вредности
Враќа низа од вредности за атрибутот при успех и false при грешка. Бројот на вредности може да се најде со индексирање на "count" во резултирачката низа. Индивидуалните вредности се пристапуваат со цел индекс во низата. Првиот индекс е 0.
LDAP дозволува повеќе од една вредност за атрибут, така што може, на пример, да складира повеќе е-адреси за записот во директориумот на една личност, сите означени со атрибутот "mail"
return_value["count"] = number of values for attribute
return_value[0] = first value of attribute
return_value[i] = ith value of attribute
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На ldap параметарот очекува LDAP\Connection
инстанца сега; претходно, валидна ldap link resource се очекуваше.
|
| 8.1.0 |
На entry параметарот очекува LDAP\ResultEntry
инстанца сега; претходно, валидна ldap result entry resource се очекуваше.
|
Примери
Пример #1 Наведи ги сите вредности на атрибутот "mail" за запис во директориумот
<?php
// $ds is a valid LDAP\Connection instance for a directory server
// $sr is a valid search result from a prior call to
// one of the ldap directory search calls
// $entry is a valid entry identifier from a prior call to
// one of the calls that returns a directory entry
$values = ldap_get_values($ds, $entry, "mail");
echo $values["count"] . " email addresses for this entry.<br />";
for ($i=0; $i < $values["count"]; $i++) {
echo $values[$i] . "<br />";
}
?>Белешки од корисници 2 забелешки
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.