解析 ldap 查询结果的简洁方法
Clean way to parse ldap query results
我正在分析对活动目录的 ldap 调用的结果。我正在尝试让所有用户加入一个安全组。这是我的结果:
$res = [member] => Array
(
[count] => 2
[0] => CN=User 1,OU=SomeOU,DC=someDC,DC= someDC2
[1] => CN=User 2,OU=SomeOU,DC= someDC,DC= someDC2
)
有没有更简洁的方法来获取结果的名称? (即用户 1、用户 2)
foreach ($res['member'] as $k => $v){
$exp = explode("=",$v);
$exp = explode(",",$exp[1]);
$name = $exp[0];
echo $name."\n";
}
不确定这样做是否更清楚,但您可以使用 preg_match
函数。
foreach($member as $key => $value) {
$matches = [];
if (preg_match('/^CN=(.*?),OU/', $member, $matches)) {
echo "$matches[1]\n";
}
}
我正在分析对活动目录的 ldap 调用的结果。我正在尝试让所有用户加入一个安全组。这是我的结果:
$res = [member] => Array
(
[count] => 2
[0] => CN=User 1,OU=SomeOU,DC=someDC,DC= someDC2
[1] => CN=User 2,OU=SomeOU,DC= someDC,DC= someDC2
)
有没有更简洁的方法来获取结果的名称? (即用户 1、用户 2)
foreach ($res['member'] as $k => $v){
$exp = explode("=",$v);
$exp = explode(",",$exp[1]);
$name = $exp[0];
echo $name."\n";
}
不确定这样做是否更清楚,但您可以使用 preg_match
函数。
foreach($member as $key => $value) {
$matches = [];
if (preg_match('/^CN=(.*?),OU/', $member, $matches)) {
echo "$matches[1]\n";
}
}