You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP使用ldap_search查询父组子组时返回所有用户的优化问题

PHP LDAP搜索子组性能优化方案

你可以从两个维度修改搜索逻辑,既过滤掉不必要的uniqueMembers字段,又提升查询速度:

核心修改点

  • 增加返回属性限制:ldap_search支持第四个参数传入需要返回的属性列表,仅指定你需要的dn、cn即可,服务器不会返回多余的大体积字段,查询耗时会大幅降低。
  • 增加对象类型过滤:在搜索过滤器中加入objectClass的匹配规则,仅返回组类型的条目,避免匹配到非组对象。

修改后代码

// 假设$ldapConn是你已经建立的LDAP连接资源
$baseDn = 'cn=parent-group,cn=groups,dc=company,dc=net';
// 过滤器:同时匹配cn前缀和组对象类型,objectClass可根据你的目录实际类型调整为groupOfNames、group等
$filter = '(&(cn=*)(objectClass=groupOfUniqueNames))';
// 仅指定需要返回的属性,不需要的uniqueMembers等字段不会被返回
$returnAttrs = ['cn', 'dn'];

$search = ldap_search($ldapConn, $baseDn, $filter, $returnAttrs);
$info = ldap_get_entries($ldapConn, $search);

$group_array = [];
for ($i=0; $i<$info["count"]; $i++) {
    $dn = $info[$i]["dn"];
    $group_cn = $info[$i]["cn"][0];
    array_push($group_array, "$group_cn : $dn");
}
// 原代码把foreach放在for循环内会导致重复输出,移到外部即可
foreach($group_array as $group){
    echo $group;
}

内容的提问来源于stack exchange,提问作者a.smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:54:03