我有一个非常旧的网络盒,其上安装了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);
这可能吗?还有其他想法吗?
由于
答案 0 :(得分:3)
根据php.net/manual/...ldap-search,您应将$sizelimit
参数设置为0以禁用内存限制。但是,如果这是导致错误的原因,它将不会覆盖LDAP服务器配置。
函数调用类似于以下内容:
ldap_search($r, "cn=location", "(cn=*)", null, 0, 0);
我不清楚filter
参数的工作原理,因此如果您在那里遇到错误,可能需要更改它。
有关ldap_search()
的所有参数的说明,请参阅上面的链接。