説明
LDAP\Resultarrayfalse ldap_list(
LDAP\Connectionarray $ldap
,
arraystring $base
,
arraystring $filter
,
array $attributes
= [],
int $attributes_only
= 0,
int $sizelimit
= -1,
int $timelimit
= -1,
int $deref
= LDAP_DEREF_NEVER
,
arraynull $controls
= null
)
LDAP_SCOPE_ONELEVEL
は、コール時に指定した
base
の直下の階層から検索した結果のみを返すことを表します
("ls" と入力して、現在の作業ディレクトリのファイル/フォルダ
一覧を取得するのと同じようなものです)。
並列検索も可能です。並列検索を行うには、単一の LDAP\Connection のインスタンスではなく、それの配列を使用します。同じベース DN を使用したくない場合や全ての検索について同じフィルタを使用したくない場合、ベース DN の配列またはフィルタの配列を使用することが可能です。これらの配列は、LDAP\Connection の配列と同じ大きさである必要があります。これは、その配列の最初が一回の検索で使用され、2 番目のエントリが他の検索で使用されるといったようになるからです。並列検索を実行する際、エラーの場合を除き、LDAP\Result の配列が返されます。エラーの場合は、返される値は false
になります。
パラメータ
-
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 のインスタンスか、LDAP\Result のインスタンスの配列を返します。失敗した場合に false
を返します
例
例1 ある組織の全ての組織単位を一覧表示する
<?php
// $ds はディレクトリサーバーの有効な LDAP\Connection のインスタンス
$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];
}
?>