int ldap_search
(int link_identifier, string base_dn, string filter, array
[attributes], int
[attrsonly], int
[sizelimit], int
[timelimit], int
[deref])
サーチ結果IDを返します。エラーの場合にFALSEを返します。
ldap_search() は、 LDAP_SCOPE_SUBTREE のスコープを有するディレクトリに関して、 指定されたフィルタにより検索を行います。 これは、ディレクトリ全体を探索することと等価です。 base_dn はディレクトリのベース DN を指定し ます。
サーバーから返される属性と値を必要なものだけに制限するために オプションの4番目のバラメータを指定することができます。 これは、(全ての属性と関連する値を返す)デフォルトの動作よりも かなり効率的です。 このため、4番目のパラメータを使用することが望ましいです。
4番目のパラメータは、array("mail","sn","cn") のような 必要な属性を保持する通常の PHP 文字列配列です。 "dn" は要求された属性の型によらず常に返されることに注意して下さい。
いくつかのディレクトリサーバーホストが返すエントリは、事前に指定された エントリ数を超えないように設定されています。このような場合、サー バーは結果セットの一部のみを返すことがあります。
検索フィルターは、LDAP ドキュメントに記述されたフォーマットの論理 演算子を用いて、簡単なものまたは高度なものとすることができます。 (フィルターに関する詳細な情報については、 Netscape Directory SDK を参照下さい)
以下の例は、"My Company" の全員について姓または名に部分文字列 $person を含まれる組織単位、姓、名、電子メールアドレスを取得します。 この例は、複数の属性に関する情報についてサーバーに検索をかける論理 フィルターを使用します。
4.0.5以降、並行検索も可能となっています。並行検索を行うには、単一 のIDを使うのではなく、リンクIDの配列を使用します。 同じ基本DNを使用したくない場合や全ての検索について同じフィルタを 使用したくない場合、基本DNの配列またはフィルタの配列を使用するこ とが可能です。これらの配列は、リンクIDの配列と同じ大きさである必 要があります。これは、その配列の最初が一回の検索で使用され、2番目 のエントリが他の検索で使用されるといったようになるからです。並行 検索を実行する際、エラーの場合を除き、検索結果IDの配列が返されま す。エラーの場合は対応する検索のエントリはFALSEとなります。これは、 通常返される値とよく似ていますが、検索が行われた際に結果IDが常に 返されます。まれに、並行検索はIDを返すにもかかわらず通常の検索は FALSEを返すということがあります。