(PHP 4 >= 4.0.5, PHP 5)
ldap_first_reference — Liefert die erste Referenz
Diese Funktion ist bis jetzt nicht dokumentiert. Es steht nur die Liste der Argumente zur Verfügung.
Hopefully the code below help you to loop through references with LDAP3 servers. It took me a significant amount of time to figure out how this thing works and now I have successfully used this with Active Directory to loop through severial subdomains.
Special thanks to Stig Venaas who helped me to get started. (the original problem was that ldap_parse_reference function was missing in Windows builds. At least it will now work with Windows PHP versions 5.1.0-DEV and higher after I made a bug report)
function crawlRefs($user, $passw, $host, $dn, $port, $filter) {
//Create the basic connection for fetching referrals
$adConn = ldap_connect($host, $port) or die("System couldn't connect!");
ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("System couldn't make first protocol option setting!");
ldap_set_option($adConn, LDAP_OPT_REFERRALS, 0) or die ("System couldn't make second protocol option setting!");
$bd = ldap_bind($adConn, $user, $passw) or die ("System couldn't bind the connection!");
$search = ldap_search($adConn, $dn, $filter);
//Find referrals
$ref = ldap_first_reference($adConn, $search);
while ($ref) {
if (ldap_parse_reference($adConn, $ref, $referrals)) {
while ($referral = array_shift($referrals)) {
echo $referral . "<br>\n";
}
}
$ref = ldap_next_reference($adConn, $ref);
}