我正在尝试在php中分解一个字符串,该字符串的创建方式如下
$users = shell_exec("ldapsearch -h ldap01 -p xxx -x -b 'dc=xxxxx,dc=com' '(cn=xxxx*)' | grep uid | grep -v xxxxx | grep -v xxxxxx | grep -v xxxxx | awk {'print $2'} | cut -d ',' -f 1 | cut -c 5-30");
然后该字符串返回一堆名称,我想将其与用户在页面另一部分的表单中输入的内容进行比较。如果我打印 $users 变量,我会得到名称列表,但它都是一个长字符串,而不是单个名称。
我尝试使用 strtok 或爆炸,但似乎没有任何效果。我有以下。
$names = explode(" ", $users);
但是当我打印它时,它只打印单词数组,就是这样。我尝试了 strtok 并尝试遍历名称,但是当我这样做时,我只能得到名字的第一个字母。如果有帮助,这些名称在打印出来时用空格分隔。我确定我错过了一些简单的东西,但感谢任何帮助。
更新:
没有这样的运气(感谢到目前为止的所有回复)。我尝试再次爆炸
$users = shell_exec("ldapsearch -h ldap01 -p 389 -x -b 'dc=mlbam,dc=com' '(cn=Systems*)' | grep uid | grep -v rtfortrac | grep -v mlbnsinfo | grep -v sysweb | awk {'print $2'} | cut -d ',' -f 1 | cut -c 5-30");
#$names = $users;
$names = explode(" ", $users);
print_r($names);
当我运行它时,我的输出是一个字符串中的所有名称(x'd out here)。我需要将它们分开,以便我可以对照它们检查用户的输入。
Array ( [0] => xxxx xxxxxxx xxxxxx xxxxx xxxxxx xxxxxx etc )
如果我取消注释 $names = $users; 并获取它返回的字符串的长度 135
$length = strlen($names);