我有一个应用程序,它会搜索我们的ldap并在缓存中保存一些属性。 获取像mailnamename 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()转换guid并解压缩(“H * hex,$ 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)读入数组?
谢谢你,如果你回答的话,那就啰嗦......
答案 0 :(得分:2)
试试这个
$myarray['ldap'][$i]["guid"] = mssql_guid_string($info[$i]["objectGUID"][0]);
答案 1 :(得分:0)
ObjectGUID必须是小写,如“objectguid”
$objectguid = bin2hex($entries['objectguid'][0]);
echo "Object Guid: ". $objectguid;
结果:
Object Guid: 362b6d25af3c9a42a23235e2c6c5e380