ldap_list

(PHP 4, PHP 5, PHP 7, PHP 8)

ldap_list単一階層の検索を行う

説明

ldap_list(
    LDAP\Connection|array $ldap,
    array|string $base,
    array|string $filter,
    array $attributes = [],
    int $attributes_only = 0,
    int $sizelimit = -1,
    int $timelimit = -1,
    int $deref = LDAP_DEREF_NEVER,
    ?array $controls = null
): LDAP\Result|array|false

指定したフィルタ filter を使用し、スコープ LDAP_SCOPE_ONELEVEL でディレクトリを検索します。

LDAP_SCOPE_ONELEVEL は、コール時に指定した base の直下の階層から検索した結果のみを返すことを表します ("ls" と入力して、現在の作業ディレクトリのファイル/フォルダ 一覧を取得するのと同じようなものです)。

パラメータ

ldap

ldap_connect() が返す LDAP\Connection クラスのインスタンス。

base

ディレクトリのベース DN。

filter

attributes

必要な属性を、 array("mail", "sn", "cn") のような通常の PHP 文字列配列で保持します。 "dn" は要求された属性の型によらず常に返されることに注意してください。

このパラメータを使用すると、デフォルトの動作よりもかなり効率的になります (デフォルトでは、すべての属性とその値を返します)。 したがって、これを使用することを推奨します。

attributes_only

属性の型のみを取得したい場合は 1 を設定します。 属性の型および値の両方を取得したい場合は 0 を設定します (これがデフォルトの挙動です)。

sizelimit

取得するエントリ数の制限を設定します。 0 は無制限であることを表します。

注意:

このパラメータは、サーバー側で事前に設定されている sizelimit を上書きすることはできません。それ以下の値を指定することはできます。

ディレクトリサーバーのホストによっては、 事前に設定された数以上のエントリを返さないようになっているものもあります。 この場合、サーバーでは、それが結果セットのすべてではないことを通知します。 このパラメータでエントリ数を制限した場合にも、同じことが起こります。

timelimit

検索に要する最大秒数を設定します。 これを 0 にすると無制限であることを表します。

注意:

このパラメータは、サーバー側で事前に設定されている timelimit を上書きすることはできません。それ以下の値を指定することはできます。

deref

検索時のエイリアスの扱いについて指定します。 以下のいずれかとなります。

  • LDAP_DEREF_NEVER - (デフォルト) エイリアスは参照されません。
  • LDAP_DEREF_SEARCHING - エイリアスを参照しますが、検索のベースオブジェクト上にいるときは参照しません。
  • LDAP_DEREF_FINDING - エイリアスの参照は、ベースオブジェクト上にいて検索中でない場合に行われます。
  • LDAP_DEREF_ALWAYS - エイリアスを常に参照します。

controls

リクエストと一緒に送信する LDAP コントロール の配列

戻り値

LDAP\Result クラスのインスタンスを返します。失敗した場合に false を返します

変更履歴

バージョン 説明
8.1.0 引数 ldap は、LDAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、リソース を期待していました。
8.1.0 LDAP\Result クラスのインスタンスを返すようになりました。 これより前のバージョンでは、リソース を返していました。
8.0.0 controls は、nullable になりました。 これより前のバージョンでは、デフォルト値が [] でした。
7.3 controls のサポートが追加されました。

例1 ある組織の全ての組織単位を一覧表示する

<?php
// $ds はディレクトリサーバーの有効なリンク ID

$basedn "o=My Company, c=US";
$justthese = array("ou");

$sr ldap_list($ds$basedn"ou=*"$justthese);

$info ldap_get_entries($ds$sr);

for (
$i=0$i $info["count"]; $i++) {
    echo 
$info[$i]["ou"][0];
}
?>

参考

関連キーワード:  検索, 階層, 単一, 設定, array, 属性, パラメータ, 参照, バージョン, controls