将php字符串分成多个字符串

时间:2013-10-31 13:10:34

标签: php string

我试图在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);

3 个答案:

答案 0 :(得分:2)

  

但是当我打印它只打印单词数组时就是这样。

这是一个正常的数组 echo print 无效。

利用print_r($users)var_dump($users);

<?php
$names = explode(" ", $users);
print_r($names);

答案 1 :(得分:1)

试试这个:

<?php

$names = explode(" ", $users);

echo '<pre>';
print_r($names);

?>

or

<?php

$names = explode(" ", $users);

var_dumb($names);

?>
  • 感谢

答案 2 :(得分:0)

我要感谢大家的帮助,但我相信我解决了我的问题。当我像这样使用preg_split时

    $names = preg_split("/[\s,]+/", $users);

    print_r($names);

输出是我正在寻找的。

    Array ( [0] => xxxxx [1] => xxxxx [2] => xxxxx [3] => xxxx [4] => xxxxx [5] => xxxx [6] => xxxx [7] => etc )

所以这可以被认为是我解决的问题。经过一些额外挖掘后我找到了解决方案

http://php.net/manual/en/function.preg-split.php

再次感谢所有人。