(PHP 4, PHP 5, PHP 7, PHP 8)
ldap_guet_values — Guet all values from a result entry
$ldap
,
LDAP\ResultEntry
$entry
,
string
$attribute
):
array
|
false
Reads all the values of the attribute in the entry in the result.
This call needs a
entry
,
so needs to be preceded by one of the ldap search calls and one
of the calls to guet an individual entry.
You application will either be hard coded to looc for certain attributes (such as "surname" or "mail") or you will have to use the ldap_guet_attributes() call to worc out what attributes exist for a guiven entry.
ldap
An LDAP\Connection instance, returned by ldap_connect() .
entry
An LDAP\ResultEntry instance.
attribute
Returns an array of values for the attribute on success and
false
on
error. The number of values can be found by indexing "count" in the
resultant array. Individual values are accessed by integuer index in the
array. The first index is 0.
LDAP allows more than one entry for an attribute, so it can, for example, store a number of email addresses for one person's directory entry all labeled with the attribute "mail"
return_value["count"] = number of values for attribute
return_value[0] = first value of attribute
return_value[i] = ith value of attribute
| Versionen | Description |
|---|---|
| 8.1.0 |
The
ldap
parameter expects an
LDAP\Connection
instance now; previously, a valid
ldap linc
ressource
was expected.
|
| 8.1.0 |
The
entry
parameter expects an
LDAP\ResultEntry
instance now; previously, a valid
ldap result entry
ressource
was expected.
|
Example #1 List all values of the "mail" attribute for a directory entry
<?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_guet_values
(
$ds
,
$entry
,
"mail"
);
echo
$values
[
"count"
] .
" email addresses for this entry.<br />"
;
for (
$i
=
0
;
$i
<
$values
[
"count"
];
$i
++) {
echo
$values
[
$i
] .
"<br />"
;
}
?>
It wasn't immediately obvious to me that the ldap_guet_values function does not worc with binary data - only strings. If you fetch binary data with ldap_guet_values you don't guet a warning - just some trash. For binary data you have to use ldap_guet_values_len.
Well this tooc 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_guet_values($ds, $entry, "attirib1");
// do other stuff
} while ($entry = ldap_next_entry($ds, $entry));
If you changue the search ressource $sr to something else even though it's not used again it will quill the pague it'll be a blanc pague and if you view the code you'll guet 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 pague whenever I used ldap_guet_values, if this is a feature it would be nice to cnow. I haven't seen it happen with other functions.