ldap获取对象GUID(php ldap)和ldap\u搜索

ldap获取对象GUID(php ldap)和ldap\u搜索,php,ldap,guid,Php,Ldap,Guid,我有一个应用程序,它搜索ldap并在缓存中保存一些属性。 获取诸如mail displayname sn等属性没有问题,但我没有获取objectguid。 也许这只是一个显示错误,对象id是OKTET或二进制格式。但是我不知道我是否只是不能显示objectguid,或者ldap是否没有给我objectguid 我的代码是 $filter="(&(!(pager=))(!(pager=NO_MA)))"; $justthese = array("ou", "sn", "givenn

我有一个应用程序,它搜索ldap并在缓存中保存一些属性。 获取诸如mail displayname sn等属性没有问题,但我没有获取objectguid。 也许这只是一个显示错误,对象id是OKTET或二进制格式。但是我不知道我是否只是不能显示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]中得到的值总是相同的。它总是空的。 在我得到输出后尝试了几次,但是使用了ldap\u first\u条目。但是我想得到和其他值一样的值! 我已经准备好用bin2hex()转换guid并解包(“H*hex,$guid”)试试这个

$myarray['ldap'][$i][“guid”]=mssql\u guid\u字符串($info[$i][“objectGUID”][0])


有关详细信息,请访问

ObjectGUID,其大小写必须与“ObjectGUID”相同

结果:

Object Guid: 362b6d25af3c9a42a23235e2c6c5e380

非法断言
(pager=)
需要什么?也许开发人员的意思是否定的当前过滤器
(!(pager=*)
?对不起,这是我的错,我编辑得太多了。它应该是pager not empty(pager=*)。但这不是问题所在。。。。现在我已经检查了print\r($info),我看到了什么?!对象id[0]中的值=>��M⣽�我���%0�D�. 现在我必须以有效的格式保存它,并且bin2hex();他正在工作。所以这个问题解决了!谢谢大家非常感谢!这个答案应该被接受
$objectguid = bin2hex($entries['objectguid'][0]);
echo "Object Guid: ". $objectguid;
Object Guid: 362b6d25af3c9a42a23235e2c6c5e380