LDAP を検索し、いくつかの属性をキャッシュに保存するアプリケーションがあります。mail displayname sn などの属性を取得するのは問題ありませんが、objectguid を取得できません。おそらく、オブジェクトIDがoktettまたはバイナリ形式であるという単なる表示エラーコースです。しかし、私がobjectguidを表示することしかできないのか、それともldapがobjectguidを私に与えないのか、正確にはわかりません。
私のコードは
$filter="(&(!(pager=))(!(pager=NO_MA)))";
$justthese = array("ou", "sn", "givenname", "mail", "pager","objectGUID");
$sr=ldap_search($ad, $basedn, $filter, $justthese);
$info = ldap_get_entries($ad, $sr);
私はさまざまなフィルターを試しましたが、これらがなければ $myarray[$number][objectguid][0] で常に同じ値を取得します。常に NULL です。出力を取得した後、数回試行しますが、ldap_first_entry を使用します。しかし、他のすべての値と同じように値を取得したい! bin2hex() と unpack("H*hex,$guid") を使用して guid を変換しようとしました <- さまざまな方法を試しましたが、同じ値 (NULL) が得られました。ところで、私は次のように配列を構築します:
for ($i=0; $i<count($info); $i++)
{
$myarray['ldap'][$i]["name"] = utf8_decode($info[$i]["givenname"][0]);
$myarray['ldap'][$i]["sname"] = utf8_decode($info[$i]["sn"][0]);
$myarray['ldap'][$i]["mail"] = $info[$i]["mail"][0];
$myarray['ldap'][$i]["pnr"] = $info[$i]["pager"][0];
$myarray['ldap'][$i]["guid"] = $info[$i]["objectGUID"][0];
}
誰かが私の問題を解決するアイデアを持っていましたか? または、完全な広告 (フィルターと OBJECTGUID を使用) を配列に読み込むより良い方法を知っていますか?
答えてくれてありがとう。