PHP LDAP克服大小限制

时间:2014-07-23 14:33:10

标签: php ldap

我有一个非常旧的网络盒,其上安装了PHP4和一个LDAP变体。

当返回的结果很小时,查询信息通常不是问题,但我试图获取一个特定CN中的所有条目

这会导致'警告:ldap_search()[function.ldap-search]:返回部分搜索结果:超出Sizelimit '

我读过的所有建议都是针对PHP5 +和Active目录的,对于这个OLD来说没什么。

我希望你能提供帮助。

这是我非常简单的ldap查询。 $r是连接。

$result = ldap_search($r, "cn=location", "(cn=*)");
$entry = ldap_first_entry($r, $result);

do {
    $dn = ldap_get_dn($r, $entry);
    echo "DN is $dn\n";
} 
while ($entry = ldap_next_entry($r, $entry)); 

ldap_close($r);

这一直有效,直到我达到极限。我尝试使用LDAP_OPT_SIZELIMIT更改限制,但显然没有帮助。

我想知道的是......有没有办法计算条目,然后用更小的更易于管理的批次处理它们:

$sr=ldap_list($r, "cn=location","cn>=".$last_location);

这可能吗?还有其他想法吗?

由于

1 个答案:

答案 0 :(得分:3)

根据php.net/manual/...ldap-search,您应将$sizelimit参数设置为0以禁用内存限制。但是,如果这是导致错误的原因,它将不会覆盖LDAP服务器配置。

函数调用类似于以下内容:

ldap_search($r, "cn=location", "(cn=*)", null, 0, 0);

我不清楚filter参数的工作原理,因此如果您在那里遇到错误,可能需要更改它。 有关ldap_search()的所有参数的说明,请参阅上面的链接。