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 変数を出力すると、名前のリストが表示されますが、個々の名前ではなく、すべて 1 つの長い文字列です。
strtok や expand を使用してみましたが、何も動作しないようです。私は次のものを持っています。
$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);
これを実行すると、1 つの文字列にすべての名前 (ここで x が表示されます) が出力されます。ユーザーの入力をそれらに対してチェックできるように、これらを分離する必要があります。
Array ( [0] => xxxx xxxxxxx xxxxxx xxxxx xxxxxx xxxxxx etc )
$names = $users; のコメントを外すと、135を返す文字列の長さを取得します
$length = strlen($names);