如何在php中从广告中获取经理姓名?
现在,我正在使用ldap将我的网站连接到AD,并从用户登录中获取数据,但我的问题是,当用户登录时,我需要获取用户的管理员姓名,我通过调用如何在php中从广告中获取经理姓名?,php,active-directory,Php,Active Directory,现在,我正在使用ldap将我的网站连接到AD,并从用户登录中获取数据,但我的问题是,当用户登录时,我需要获取用户的管理员姓名,我通过调用$entries[0][“manager”][0]来获取管理员姓名,它显示的数据如下所示CN=rosie,OU=AllUser,DC=xyz,DC=local我只需要获取经理名“rosie”,但我不知道如何获取,请帮助 这是我的密码 $ldap_host ="servername"; $ldap_port = "port"; $ldap_dn = "OU=All
$entries[0][“manager”][0]
来获取管理员姓名,它显示的数据如下所示CN=rosie,OU=AllUser,DC=xyz,DC=local
我只需要获取经理名“rosie”,但我不知道如何获取,请帮助
这是我的密码
$ldap_host ="servername";
$ldap_port = "port";
$ldap_dn = "OU=AllUser,DC=abc,DC=local";
$ldap_usr_dom = '@abc.local';
$ldap_it_group = "IT";
$ldap = ldap_connect($ldap_host,$ldap_port) or die("Could not connect to ".$ldap_host);
$bind = @ldap_bind($ldap, $user.$ldap_usr_dom, $password) or die("cant bind");
if($bind) {
$filter = "(&(objectClass=*)(sAMAccountName=".$user."))";
$attr = array("manager");
$result = ldap_search($ldap, $ldap_dn, $filter, $attr) or exit("Unable to search LDAP server");
$entries = ldap_get_entries($ldap, $result);
ldap_unbind($ldap);
for ($i=0; $i<$entries["count"]; $i++) {
echo "Manager is: ". $entries[0]["manager"][0]."<p>";
}
$ldap\u host=“servername”;
$ldap_port=“port”;
$ldap_dn=“OU=AllUser,DC=abc,DC=local”;
$ldap_usr_dom='@abc.local';
$ldap_it_group=“it”;
$ldap=ldap\u connect($ldap\u主机,$ldap\u端口)或die(“无法连接到”。$ldap\u主机);
$bind=@ldap\u bind($ldap,$user.$ldap\u usr\u dom,$password)或die(“无法绑定”);
如果($bind){
$filter=“(&(objectClass=*)(sAMAccountName=“.$user”)”;
$attr=数组(“管理器”);
$result=ldap_search($ldap,$ldap_dn,$filter,$attr)或exit(“无法搜索ldap服务器”);
$entries=ldap\u get\u条目($ldap,$result);
ldap_unbind($ldap);
对于($i=0;$i来说,这种方法是一种非常糟糕的方法……使用regex会更好,但这对你来说是一项快速的黑客工作,直到regex的人过来提供表达式为止
$manager = str_replace('CN=','',strstr($entries[0]["manager"][0],',',true));
echo "Manager is: ". $manager ."<p>";
$manager=str_replace('CN=','',strstrstr($entries[0][“manager”][0],','',true));
echo“经理是:”.$Manager.“”;
这种方法是一种非常可怕的方法……使用regex会更好,但这对你来说是一项快速的黑客工作,直到regex的人来提供表达式
$manager = str_replace('CN=','',strstr($entries[0]["manager"][0],',',true));
echo "Manager is: ". $manager ."<p>";
$manager=str_replace('CN=','',strstrstr($entries[0][“manager”][0],','',true));
echo“经理是:”.$Manager.“”;
好的,一个问题…为什么不把所有的东西都去掉,除了罗茜
值?这是一个经理的名字。我只需要一个经理的CN,这就是我的建议…显然罗茜
是动态的。好的,一个问题…为什么不把所有的东西都去掉,除了罗茜
值?这是一个经理的名字。我只需要ma的CNnagerthat这就是我所建议的…显然,rosie
将是动态的。是的,这太可怕了,我是ldap做广告的新手,我不知道如何做。谢谢你的建议。php+AD核心代码需要php团队的高度关注。假设很少有人使用它,那么为什么呢?这可能是我唯一的猜测。我唯一一次使用它是与powerschool一起工作。无论如何,上面的内容在我这边似乎确实有效,所以希望它能为你解决。是的,这太可怕了,我是ldap做广告的新手,我不知道如何做。谢谢你的建议。php+AD核心代码需要php团队的大量关注。假设很少有人使用它,为什么,这是我唯一的猜测。唯一的时间我曾经用过它,不过是和powerschool混在一起。不管怎么说,以上这些对我来说确实有效,所以希望它对你有用。