2016-03-21 2 views
1

Tüm kayıtlı kullanıcılara sahip olduğum bir LDAP sunucum var. 3000'den fazla kullanıcı var ve LDAP bir arama sonucu için 1000 giriş sınırına sahip. Json ve yönetim için bir "dizi" de tüm kullanıcıların olması gerekir.Tüm diziyi php döngüsünden nasıl gönderebilirim?

1000 giriş daha üzerinde arama sonucu için benim kod vardır: ön ucunda

$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); 

Ben bütün dizi ihtiyacım ama sadece ilk 100 girdileri olsun. Döngülerin bu sonucunu bir değişken dizisine nasıl bölebilirim?

+0

bir yere aradın) '' 'ldap_set_option ($ ds, LDAP_OPT_PROTOCOL_VERSION, 3);; kurtarmaya

… $entries = array(); do { … $entries = array_merge(ldap_get_entries($ds, $result), $entries); … } while(…) unset($entries['count']); … 

array_merge' '': Ben böyle bir şey yapar? Sayfalanmış sonuçlar yalnızca LDAPv3 ile kullanılabilir. – heiglandreas

+0

Evet, sahibim. Prefect çalışıyor, tüm sonuçları LDAP'den döndürüyor, ancak bu sonuçlara tek bir dizide ihtiyacım var. – Mardzis

+0

Bu 'do' döngüsü yaklaşık 5 döngü yaptı, her döngü ~ 100 girişleri döndürür. Bu kayıtların her biri "eko" yazdırır. Bu 5 döngüyü tek bir diziye kaydetmeyi nasıl kaydedebilirim? – Mardzis

cevap

0

bana göre, yeni verilerle her yinelemede $entries dizinizin üzerine yazıyorsunuz.

+0

Evet, mükemmel çalışıyor. Üzerine yazarken sorun olması gerektiğini düşündüm. Teşekkür ederim – Mardzis

+0

Yardım etti;) – heiglandreas