Использование PHP с LDAP возвращает все результаты в одну соединенную строку - PullRequest
1 голос
/ 28 января 2020

Я пытаюсь получить информацию о пользователе из моего Active Directory через LDAP. Я использую для циклов, чтобы получить каждое имя пользователя для конкретного c AD OU. Все результаты показаны в одной строке без разделения. Если я помещаю $ LDAP_CN в массив, он просто создает много разных массивов.

Вот мой PHP код:

$entries = ldap_get_entries($ldap_connection, $result);

for ($x=0; $x<$entries['count']; $x++){

    $LDAP_CN = "";
    if (!empty($entries[$x]['cn'][0])) {
        $LDAP_CN = $entries[$x]['cn'][0];
        if ($LDAP_CN == "NULL"){
            $LDAP_CN = "";
        }
      }
    echo($LDAP_CN);
}

вывод:

Name LastnameName1 Lastname1Name2 Lastname2Name3 Lastname3Name4 Lastname4 ant etc.

Когда я пытаюсь сделать var_dump $ LDAP_CN, он выдает такой результат:

string (13) "Name Lastname"
string (15) "Name1 Lastname1"
string (15) "Name2 Lastname2"
string (15) "Name3 Lastname3"
string (15) "Name4 Lastname4"
etc..

Так что я предполагаю, что он знает, как их разделить. Но как ? Я попытался взорвать, он просто создает много массивов .. Также, если я положу эхо из l oop, он просто возвращает последний результат.

1 Ответ

1 голос
/ 28 января 2020

Все результаты в одном массиве:

$LDAP_CN = [];
for ($x=0; $x<$entries['count']; $x++){

    if (!empty($entries[$x]['cn'][0])) { 
        $LDAP_CN[] = $entries[$x]['cn'][0] == "NULL" ? "" : $entries[$x]['cn'][0];      
    }
}

print_r($LDAP_CN);
...