PHP_LDAP:测试组织单位是否存在?

时间:2016-02-17 01:03:01

标签: php ldap

我想知道是否有人知道通过使用PHP的LDAP扩展提供OU的DN来确定特定OU是否存在的好方法?

2 个答案:

答案 0 :(得分:1)

在搞乱ldap_search函数一段时间后,我发现了一种相当可靠的方法。这适用于Active Directory,我不确定这是否适用于OpenLDAP。

/**
 * @param $ldap
 * @param $search_base
 * @param $dn
 * @return bool
 */
public function test_ou($ldap, $search_base, $dn)
{
    $filter = '(&(objectClass=top)(|(objectClass=organizationalUnit)(objectClass=container))(distinguishedName=' . $dn . '))';
    $results = ldap_get_entries($ldap, ldap_search($ldap, $search_base, $filter, array('objectGUID')));
    return ($results['count'] > 0) ? true : false;
}

答案 1 :(得分:0)

我知道的很晚但也许它可以帮助将来的某个人 我创建像file_exists这样的dn_exists(返回true或false)它在参数中取一个OU来表示例如OU = Utilisateus,DC =公司,DC = dz,祝你好运:)

public function dn_exists($dn){
    $filter="(&(ObjectClass=person))";
    //$this->ldap_resource_link connection to LDAP
    $read = @ldap_search($this->ldap_resource_link, $dn, $filter,array('ou'));
    if(!$read){
        return false;
    }else{
        return true;
    }

}