PHP-什么是LDAP_sort()方法的替代品?

如标题所示,当我尝试使用ldap_sort()方法时,它将返回不推荐使用的方法

为什么呢有什么等效的吗?

还有可能在过滤器中对A-Z进行排序吗?

解决方法:

ldap_sort基于一个C函数,该函数到现在已经过时了.而且由于ldap_sort通常不执行大多数人认为的操作,因此我们决定不推荐使用PHP函数.

尤其是当结果也可以通过用户域代码实现时.看看https://github.com/zendframework/zend-ldap/blob/master/src/Collection/DefaultIterator.php#L379-L403,看看我们如何在zend-ldap中解决此问题.您可以使用任何排序函数来获取您喜欢的排序,并且不绑定到ldap_sort中实现的排序算法,但是没人真正知道它如何排序.

使用用户登陆功能进行排序时,您可以完全实现特殊情况所需的排序.按多个属性排序,不区分大小写的排序等,等等.

另一种方法是使用服务器端排序

a)需要我们在PHP C代码中实现LDAP-COntrol(目前尚未完成),并且
b)需要服务器来实现

由于我们尚未(尚未)完成该功能,因此该功能目前在PHP中不可用.这是更好的解决方案,但是由于它不一定在服务器上可用,因此您可能仍想在客户端进行排序.而且,当您使用分页结果多次搜索时,您仍然需要手动对结果进行排序.

因此,出于某种原因不赞成使用ldap_sort,但它仍然可用.并且它将在所有PHP 7.x分支中可用.但是您应该使用其他排序解决方案.我们希望能够在PHP 8中交付服务器端排序(虽然不知道何时到期),但这可能对您没有帮助,因为它取决于服务器的功能.

因此,获取您的结果,将它们添加到数组中并为该数组实现排序功能是您最容易做的事情,而排序算法正是您想要的!

免责声明:I’m the one that implemented the DEPRECATED-Warning

上一篇:java – 如何从ldap DirContextOperations获取memberOf属性


下一篇:小丑Linux学习之路-日志管理