请考虑以下事项。
$ad=ldap_connect("ldap.domain.local");
$dn_Accounting = 'OU=Accounting,OU=Users,OU=MyBusiness,DC=domain,DC=local';
$attributes = array("mail", "cn");
$filter = "(mail=*)";
$ldap_username = 'DOMAIN\\internalweb_ldap';
$ldap_password = 'password';
$bd=ldap_bind($ad, $ldap_username, $ldap_password);
$result_Accounting = ldap_search($ad, $dn_Accounting, $filter, $attributes);
$entries_Accounting = ldap_get_entries($ad, $result_Accounting);
for ($i=0; $i<$entries_Accounting["count"]; $i++){
echo $entries_Accounting[$i]["cn"][0]." (".$entries_Accounting[$i]["mail"][0]."),<br />";
}
如何过滤以排除$filter
中的特定电子邮件?
例如,如果我想要排除justin@domain.com
和john@domain.com
,我如何才能将过滤条件设置为不包含这些电子邮件。
答案 0 :(得分:0)
$ filter ='(&amp;(mail = *)(!(|(mail = justin@domain.com)(mail =john@domain.com))))'
(我不确定目前的右括号)。
过滤器的邮件值 必须不包含justin@domain.com 或 john@domain.com之一。
逻辑组合在括号中,然后是“&amp;”之一(AND)'|' (或)或'!' (不)。
答案 1 :(得分:0)
$filter = "(&(mail=*)(!(mail=justin@domain.com))(!(mail=john@domain.com)))";