我尝试解析当前通过SSH连接到服务器的用户列表,但结果非常不规则,所以我只能简单地执行以下操作:
$users = shell_exec('who');
echo "<pre>$users</pre>";
在让PHP操作之前,我有没有更好的方法来解析命令行中who
的输出? 我想要将它放入一个数组中,该数组包含用户名(下面的第一列),他们连接的终端(第二列),他们连接的日期和时间(第三列)以及他们连接的IP地址(用括号括起来)。 我猜我应该使用preg_split
来分割数据,但是有时候用户名长度、终端名等非常不规则。
(who
的一些示例输出):
alex tty7 2010-01-23 17:04 (:0)
alex pts/0 2010-01-30 17:43 (192.168.1.102)
root pts/1 2010-01-30 17:45 (192.168.1.102)