array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.ldap-control-paged-result.php', 1 => 'ldap_control_paged_result', ), 'up' => array ( 0 => 'ref.ldap.php', 1 => 'LDAP 関数', ), 'prev' => array ( 0 => 'function.ldap-control-paged-result-response.php', 1 => 'ldap_control_paged_result_response', ), 'next' => array ( 0 => 'function.ldap-count-entries.php', 1 => 'ldap_count_entries', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/ldap/functions/ldap-control-paged-result.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.4.0, PHP 7)
ldap_control_paged_result — LDAP ページネーション制御情報を送信する
この関数は PHP 7.4.0 以降で 推奨されなくなり、PHP 8.0.0 以降は 削除されています。
代替として、ldap_search() 関数の controls
引数を使うべきです。
詳細は LDAP コントロール も参照して下さい。
$link
,$pagesize
,$iscritical
= false
,$cookie
= ""LDAP ページネーションを有効にするため、ページネーション制御情報 (ページサイズやクッキーなど) を送信します。
link
ldap_connect() が返す LDAP リソース。
pagesize
ページあたりのエントリ数。
iscritical
ページネーションを必須にするかどうか。 true にすると、もしサーバーがページネーションに対応していなければ 検索結果を返しません。
cookie
サーバーから送られる opaque structure (ldap_control_paged_result_response())。
バージョン | 説明 |
---|---|
8.0.0 | この関数は削除されました。 |
7.4.0 | この関数は非推奨になりました。 |
次の例は、検索結果の最初のページを取得します。 ページあたり 1 エントリになります。
例1 LDAP ページネーション
<?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;
この例は、すべての結果を取得します。 ページあたり 100 エントリとなります。
例2 LDAP ページネーション
<?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 != '');
注意:
ページネーション制御は、LDAPv3 プロトコルの機能です。