ldap_control_paged_result

(PHP 5 >= 5.4.0, PHP 7)

ldap_control_paged_resultEnvia controle de paginação LDAP

Aviso

Esta função foi DESCONTINUADA a partir do PHP 7.4.0 e foi REMOVIDA a partir do PHP 8.0.0. Em vez disso, o parâmetro controls da função ldap_search() deve ser usado. Veja também Controles LDAP para obter detalhes.

Descrição

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

Habilita paginação LDAP enviando o controle de paginação (tamanho da página, cookie...).

Parâmetros

link

Um recurso LDAP, retornado por ldap_connect().

pagesize

O número de entradas por página.

iscritical

Indica se a paginação é crítica ou não. Se verdadeiro e o servidor não suportar paginação, a pesquisa não retornará nenhum resultado.

cookie

Uma estrutura opaca enviada pelo servidor (ldap_control_paged_result_response()).

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0 Esta função foi removida.
7.4.0 Esta função foi descontinuada.

Exemplos

Oo exemplo abaixo mostra a obtenção da primeira página de uma pesquisa paginada com apenas uma entrada por página.

Exemplo #1 Paginação LDAP

<?php
// $ds é um identificador de conexão válido (consulte 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');

// habilita paginação com tamanho de página igual a 1.
ldap_control_paged_result($ds, 1);

$sr = ldap_search($ds, $dn, $filter, $justthese);

$info = ldap_get_entries($ds, $sr);

echo
$info['count'] . ' entradas retornadas' . PHP_EOL;

O exemplo abaixo mostra a obtenção de todos os resultados paginados com 100 entradas por página.

Exemplo #2 Paginação LDAP

<?php
// $ds é um identificador de conexão válido (consulte 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');

// habilita paginação com tamanho de página igual a 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 != '');

Notas

Nota:

Controle de paginação é um recurso do protocolo LDAPv3.