我有一个LDAP服务器,我有所有注册用户。有超过3000个用户,LDAP对一个搜索结果有 1000个条目限制。我需要将所有用户放在一个'数组'中用于json和管理等等。
我的搜索结果代码超过1000个条目:
$bind = ldap_bind($ds, $dn, $ldapconfig['password']);
$pageSize = 100;
$cookie = '';
$i = 0;
$attributes = array("email", "verificationHash", "gn", "sn");
do {
ldap_control_paged_result($ds, $pageSize, true, $cookie);
$filter = '(&(objectClass=Client))';
$result = ldap_search($ds, $baseDN, $filter, $attributes);
$entries = ldap_get_entries($ds, $result);
array_shift( $entries );
$usersJSON = json_encode( $entries );
header('Content-Type: application/json');
echo $usersJSON; // return all users from ldap (over 3000)
ldap_control_paged_result_response($ds, $result, $cookie);
} while($cookie !== null && $cookie != '');
// return array for javascript
$output = json_encode(
array(
'status' => true,
'text' => 'Something',
'data' => $entries
)
);
die($output);
在前端我需要整个数组,但我只得到前100个条目。如何将循环结果拆分为一个变量数组?
答案 0 :(得分:0)
对我来说,看起来你在每次迭代时用新数据覆盖你的$entries
数组。所以我做这样的事情:
…
$entries = array();
do {
…
$entries = array_merge(ldap_get_entries($ds, $result), $entries);
…
} while(…)
unset($entries['count']);
…
array_merge救援;)