解析 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";
    }
}