ldap_search忽略了大小写字母

时间:2013-10-24 11:36:09

标签: php ldap ldap-query

你好我的朋友我正试图从活动目录中获取一些数据,但是当存储的大写字母或混合字母的eamil时,我有一个问题,我希望ldap_search()搜索AD忽略字母的情况 这是我的功能,并提前感谢您

    function LDAPget($email)
    {
        $ldap['server'] = 'xx.xx.xx.xx';
        $ldap['user'] = 'x';
        $ldap['pass'] = 'any';
        $ds = ldap_connect($ldap['server']); 
        $bind = ldap_bind($ds, $ldap['user'], $ldap['pass']);
        $filter = "(mail=$email)";
        $sr = ldap_search($ds, $ldap['base_dn'], $filter, array('*'));
        $rows = ldap_get_entries($ds, $sr);
}

2 个答案:

答案 0 :(得分:0)

LDAP客户端必须使用过滤器中的exactMatch匹配规则。使用哪个caseExact匹配规则取决于存储在架构中的属性定义。每个属性都有自己的属性类型,语法,匹配规则和其他信息。如果LDAP Directory Server不符合LDAP,则可能不支持可扩展匹配筛选器,在这种情况下,应用程序必须处理从LDAP目录服务器检索的数据。

另见

答案 1 :(得分:0)

strcasecmp函数完成了这个技巧

    if (strcasecmp($rows[0][$filtername][0], $usereinfo) == 0 ) {

//problem solved 
}