如何使用LDAP查询对LDAP结果进行排序?

问题描述:

我使用PHP创建LDAP目录搜索,我们使用Novell作为我们的LDAP服务器。我能够成功搜索并返回结果;这是我正在运行的当前过滤器,(&(FERPA=N)(|(uid=*searchphrase*)(sn=*searchphrase*)(fullName=*searchphrase*)(telephoneNumber=*searchphrase*)))如何使用LDAP查询对LDAP结果进行排序?

我希望能够按姓氏或LDAP变量sn排序。我可以通过PHP对其进行排序,但我希望这是最后的手段。有没有办法根据列对结果进行排序?例如,在SQL中,您可以基于这样的列进行排序,SELECT * FROM TABLE WHERE COL='criteria' ORDER BY COL;是否可以使用LDAP查询做类似的事情?

+1

只是想知道你是否知道这个ldap_sort函数(http://www.php.net/manual/en/function.ldap-sort.php)。 – Neal 2012-04-10 09:45:11

+0

我已经看过它,但我无法找到该特定功能的文档。另外,我试图通过LDAP查询对结果进行排序,如果我不能通过LDAP查询找出方法,那么我将通过PHP进行排序。 – samwell 2012-04-11 19:06:03

要求搜索请求的结果以可重复的 方式进行排序的LDAP客户端应用程序应使用server-side sort extension。在大多数 的情况下,使用服务器端分类扩展需要应用程序编码器通知 目录管理员,以便可以设置正确的索引。

+0

SOrry我可能会丢失一些东西,但是这对我通过LDAP查询对LDAP结果进行排序有何帮助? – samwell 2012-04-11 19:06:59

+0

它不。这不是简单的分页结果,而是[服务器端排序扩展](http://tools.ietf.org/html/rfc2891)。对困惑感到抱歉。 – 2012-04-11 19:10:22

+0

这一切都很好,谢谢你的帮助。 – samwell 2012-04-11 19:16:02

据我所知,没有办法用LDAP过滤器对结果进行排序。所有过滤器都会限制返回的条目。

,使用PHP,你会运行搜索,然后进行排序与​​http://us3.php.net/manual/en/function.ldap-sort.php

另外的结果,你可以阅读所有的条目到一个数组,然后运行对他们php的其他排序功能之一。 http://us1.php.net/manual/en/array.sorting.php