Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中从广告中获取经理姓名?_Php_Active Directory - Fatal编程技术网

如何在php中从广告中获取经理姓名?

如何在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

现在,我正在使用ldap将我的网站连接到AD,并从用户登录中获取数据,但我的问题是,当用户登录时,我需要获取用户的管理员姓名,我通过调用
$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混在一起。不管怎么说,以上这些对我来说确实有效,所以希望它对你有用。