我有一個應用程序,它搜索我們的ldap並將一些屬性保存在緩存中。 獲取郵件顯示名稱等屬性沒有問題,但我沒有得到objectguid。 也許它只是一個顯示錯誤過程中的對象ID是以oktett或二進制格式。但我不知道,如果我只能不顯示objectguid或如果ldap不給我的objectguid。ldap使用ldap_search獲取objectguid(php ldap)
我的代碼是
$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);
我已經嘗試過不同的過濾器,無justthese我總是得到在$ myArray的[$號]相同值的objectGUID] [0]。它始終是NULL。 我得到了一個輸出,但與ldap_first_entry幾個trys。但我想獲得像所有其他值的價值! 我試着用bin2hex()和unpack(「H * hex,$ guid」)轉換guid < - 嘗試了不同的方法,但是我得到了相同的值(NULL)。 BTW我建立我的數組是這樣的:
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)到一個數組?
謝謝檸mutch如果你回答...
非法聲明'(pager =)'需要什麼?也許開發者意味着否定現在的過濾器'(!(pager = *))'? – 2013-03-15 13:18:23
對不起,這是我的錯,我已經編輯好了。它應該是尋呼機不空(尋呼機= *)。但這不是問題 – 2013-03-15 14:12:40
omg ....現在我檢查了print_r($ info),我看到了什麼?!對象id [0] => M⣽ I %0 d 中的一個值。 現在我必須保存這個有效的格式,和bin2hex();工作中。所以這個問題解決了!謝謝大家 – 2013-03-15 14:25:32