J'ai essayé l'analyse syntaxique une liste des utilisateurs connectés via SSH à un serveur, mais les résultats sont très irréguliers, donc j'été obligé de le faire simplement:analysant la sortie de commande Linux « qui » en PHP
$users = shell_exec('who');
echo "<pre>$users</pre>";
Existe-t-il un meilleur moyen d'analyser la sortie de who
dans la ligne de commande avant de laisser PHP jouer avec lui? Je le veux dans un tableau qui contient le nom d'utilisateur (première colonne ci-dessous), le terminal auquel ils sont connectés (deuxième colonne), la date et l'heure auxquelles ils se sont connectés (troisième) et l'IP d'où ils sont connectés (entre parenthèses). Je suppose que je devrais utiliser preg_split
pour diviser les données, mais il semble vraiment parfois irrégulière avec une longueur de nom d'utilisateur, le nom du terminal, etc ..
(une sortie exemple de 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)