検索

検索 – エントリの検索

DN についてのちょっとしたメモ

特殊文字 (",", "+", """, "\", "<", ">", ";", "#", "=", space or a hexpair) を DN の属性や値に使用することもできます。 Net_LDAP2_Util::escape_dn_value()Net_LDAP2_Util::unescape_dn_value()Net_LDAP2_Util::ldap_explode_dn() そして Net_LDAP2_Util::canonical_dn() の API ドキュメントを参照ください。 これらの関数を用いると、DN を安全に処理することができます。

エントリの検索

サーバに接続したら、Net_LDAPsearch() メソッドでディレクトリを検索しましょう。 このメソッドのパラメータは次の三つです。

  • $base は検索時に使用するベース DN です。 null のままにしておくと、 接続時に指定したデフォルトのベース DN を使用します。

  • $filter は、返される結果を指定するための問い合わせフィルタです。 文字列 (熟練者用) か、あるいは Net_LDAP_Filter オブジェクトで指定します。オブジェクトで指定することをお勧めします。 Net_LDAP_Filter は、LDAP のフィルタに適したエスケープを自動的に行います。 LDAP フィルタについては、別途 LDAP フィルタ で説明します。

  • $params は、現在のクエリで使用する設定項目の配列となります。

    設定パラメータ
    名前 説明 デフォルト
    scope 検索で使用するスコープ
    • base - 単一のエントリのみ

    • sub - そのツリー全体

    • one - $base の直下のみ

    sub
    sizelimit 結果として返すエントリの最大数 0 (無制限)
    timelimit 検索時の最大の待ち時間 0 (無制限)
    attrsonly true の場合は属性名のみを返す false
    attributes そのエントリが含んでいる属性名の配列。 必要な属性のみに絞り込むことをお勧めします。 array() (すべての属性)

search() メソッドは、Net_LDAP_Search オブジェクトあるいは Net_LDAP_Error のいずれかを返します。 Net_LDAP_Search オブジェクトを使用すると、 エントリの件数の取得やエントリの内容の取得などの操作を行うことができます。

検索クエリの作成

<?php
// 非常に簡単なフィルタを作成します。
// ここでは、姓が "Joe" ではじまるエントリをすべて取得します
$filter Net_LDAP_Filter::create('sn''begins',  'Joe');

// 独自の検索ベースを指定します。NULL を渡すと、Net_LDAP の設定で
// 指定した値を使用します。これはおそらくご希望のものとは異なるでしょう。
$searchbase 'ou=addressbook,dc=example,dc=org';

// その他のオプション。
// 'ou=addressbook,dc=example,dc=org' 配下のすべてのツリーを検索し、
// 属性 'sn' のみを取得します。あとで実際に使用する属性のみを
// 取得するようにしておくことをお勧めします。
// しかし、不要な属性も含めて取得するほうが、
// 属性を取得するためだけに配列を再度読み込むよりも高速です。
$options = array(
    
'scope' => 'sub',
    
'attributes' => array('sn')
);

// さぁ、検索です!
$search $ldap->search($searchbase$filter$options);

// エラーが出ていないかどうかを確かめます。
if (PEAR::isError($search)) {
    die(
$search->getMessage() . "\n");
}

// 何件見つかったのかを表示します。
echo "全部で " $search->count() . " 件のエントリが見つかりました!";
?>
Net_LDAP の設定、および LDAP サーバへの接続 (Previous) 検索結果からエントリを直接取得する方法 (Next)
Last updated: Thu, 30 Oct 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.