Send LDAP pagination control

ldap_control_paged_result_response
ldap_count_entries
LDAP Functions
PHP Manual

# ldap_control_paged_result

(PHP 5 >= 5.4.0)

ldap_control_paged_result — Send LDAP pagination control

### Description

bool ldap_control_paged_result ( resource `$link` , int `$pagesize` [, bool `$iscritical` = false [, string `$cookie` = "" ]] )

Enable LDAP pagination by sending the pagination control (page size, cookie...).

### Parameters

`link`

  An LDAP link identifier, returned by ldap_connect().

`pagesize`

  The number of entries by page.

`iscritical`

  Indicates whether the pagination is critical of not. If true and if the server doesn't support pagination, the search will return no result.

`cookie`

  An opaque structure sent by the server ( ldap_control_paged_result_response()).

### Return Values

Returns `TRUE` on success or `FALSE` on failure.

### Examples

The example below show the retrieval of the first page of a search paginated with one entry by page.

Example #1 LDAP pagination

`<?php
// $ds is a valid link identifier (see ldap_connect)
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');
// enable pagination with a page size of 1.
ldap_control_paged_result($ds, 1);
$sr = ldap_search($ds, $dn, $filter, $justthese);
$info = ldap_get_entries($ds, $sr);
echo $info['count'] . ' entries returned' . PHP_EOL;`

The example below show the retrieval of all the result paginated with 100 entries by page.

Example #2 LDAP pagination

`<?php
// $ds is a valid link identifier (see ldap_connect)
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
$dn = 'ou=example,dc=org';
$filter = '(|(sn=Doe*)(givenname=John*))';
$justthese = array('ou', 'sn', 'givenname', 'mail');
// enable pagination with a page size of 100.
$pageSize = 100;
$cookie = '';
do {
ldap_control_paged_result($ds, $pageSize, true, $cookie);
$result = ldap_search($ds, $dn, $filter, $justthese);
$entries = ldap_get_entries($ds, $result);
foreach ($entries as $e) {
echo $e['dn'] . PHP_EOL;
}
ldap_control_paged_result_response($ds, $result, $cookie);
} while($cookie !== null && $cookie != '');`

### Notes

> Note:

> Pagination control is a LDAPv3 protocol feature.

### See Also

- ldap_control_paged_result_response() - Retrieve the LDAP pagination cookie
- » RFC2696 : LDAP Control Extension for Simple Paged Results Manipulation

ldap_control_paged_result_response
ldap_count_entries
LDAP Functions
PHP Manual