你好我的朋友我正试图从活动目录中获取一些数据,但是当存储的大写字母或混合字母的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);
}
答案 0 :(得分:0)
LDAP客户端必须使用过滤器中的exactMatch
匹配规则。使用哪个caseExact
匹配规则取决于存储在架构中的属性定义。每个属性都有自己的属性类型,语法,匹配规则和其他信息。如果LDAP Directory Server不符合LDAP,则可能不支持可扩展匹配筛选器,在这种情况下,应用程序必须处理从LDAP目录服务器检索的数据。
答案 1 :(得分:0)
strcasecmp函数完成了这个技巧
if (strcasecmp($rows[0][$filtername][0], $usereinfo) == 0 ) {
//problem solved
}