ldap_search 未返回超过 1000 个用户

Sen*_*amy 1 php cakephp ldap phpldapadmin

ldap_search 未返回超过 1000 个用户。我还将 sizelimit 设置为 0。让我知道解决方案。

Mon*_*arc 5

此解决方案仅适用于 php 版本 >5.4。

编辑:正如 @derhansen 提到的,ldap_control_paged_result_response自 PHP 7.4 起已弃用

它会立即带来给定数量的结果,直到有可用数据为止。

 $ldap = ldap_connect($adServer, $adPort);
 $bind = ldap_bind($ldap, $username, $password);

// enable pagination with a page size of 100.
    $pageSize = 100;

    $cookie = '';
    $i=1;
    do {
        ldap_control_paged_result($ldap, $pageSize, true, $cookie);
        $filter = '(objectCategory=group)';
        $result  = ldap_search($ldap, "dc=SOMETHING,dc=COM", $filter);
        $entries = ldap_get_entries($ldap, $result);

        array_shift($entries);
        foreach ($entries as $e) {
            echo '<br>';
            echo $i. '. '. $e['dn'] . PHP_EOL;
            echo '<br> Name: '. $e['name'][0] . PHP_EOL;
            $i++;
        }

        ldap_control_paged_result_response($ldap, $result, $cookie);

    } while($cookie !== null && $cookie != '');
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。

您可以在这里找到更多信息: http://php.net/manual/en/function.ldap-control-paged-result.php