Paul's Programming Notes PostsRSSGithub

Function To Find Largest UID Number In LDAP

I got most of this function from this CakePHP Bakery article. It will find all the uidNumbers, sorting them largest to smallest, then return the largest number.

$ds = ldap_connect("localhost");  // assuming the LDAP server is on this host

function findLargestUidNumber($ds)
{
    $s = ldap_search($ds, "ou=people,dc=yourdomain,dc=com", 'uidnumber=*');
    if ($s)
    {
        // there must be a better way to get the largest uidnumber, but I can't find a way to reverse sort.
        ldap_sort($ds, $s, "uidnumber");

        $result = ldap_get_entries($ds, $s);
        $count = $result['count'];
        $biguid = $result[$count-1]['uidnumber'][0];
        return $biguid;
    }
    return null;
}

$largestUID = findLargestUidNumber($ds);