Bonjour,

J'aimerais pouvoir stylisé le retour d'une commande or je ne sais pas faire.

Voici mon code:

<?php
$connection = ssh2_connect('monip', 22);
ssh2_auth_password($connection, 'root', 'monpass');

$stream = ssh2_exec($connection, 'cd /home/teamspeak3-server_linux-amd64/logs && cat ts3server_2015-10-16__18_52_38.842545_1.log');

stream_set_blocking($stream, true);

echo '<pre>';
echo stream_get_contents($stream);
echo '</pre>';

?>

Ce qui me retourne:

2015-10-16 18:52:45.943801|INFO    |VirtualServer |  1| listening on 0.0.0.0:9987
2015-10-16 18:52:45.944331|INFO    |VirtualServer |  1| client 'server'(id:0) added privilege key for servergroup 'Server Admin'(id:6)
2015-10-16 18:52:45.944375|WARNING |VirtualServer |  1| --------------------------------------------------------
2015-10-16 18:52:45.944409|WARNING |VirtualServer |  1| ServerAdmin privilege key created, please use the line below
2015-10-16 18:52:45.944442|WARNING |VirtualServer |  1| token=95w5PjTgxx12ZKRllPvnuNmXLXMCWRZr5jdrVlEo
2015-10-16 18:52:45.944475|WARNING |VirtualServer |  1| --------------------------------------------------------
2015-10-16 18:53:10.112168|INFO    |VirtualServer |  1| client (id:2) was added to servergroup 'Server Admin'(id:6) by client 'server'(id:0)
2015-10-16 18:53:10.113836|INFO    |VirtualServer |  1| client 'Cobryn'(id:2) used privilege key '95w5PjTgxx12ZKRllPvnuNmXLXMCWRZr5jdrVlEo' and was added to servergroup 'Server Admin'(id:6)

Maintenant avec tout ça, j'aimerais pouvoir mettre ce que je veut dans un tableau, exemple:

INFO                    WARNING
Listening on BLABLA   Server admin privilege BLABLA
Client 'server' BLABLA   token=BLABLA

Merci d'avance :3

12 réponses


Hum ma première idée serait de construire un nouveau tableau en parcourant le premier.
Par exemple : pour chaque ligne, si type="info", ajouter cette ligne dans tableau avec valeur etc... Je ne sais pas si je me suis bien fais comprendre ?

Comme Benjamin l'a dit, je pense aussi que tu vas être obligé de retravailler le résultat du stream_get_contents(), et étant donné que ça renvoie une chaîne caractère et qu'apparemment il doit y avoir des sauts de lignes dans cette chaîne (vu le résultat affiché), tu pourrais parser sur le '\n' à l'aide d'un explode().

Cobryn
Auteur

Bonjour,

Je suis vraiment un "débutant" sur php.
Et enfaite, me dire les chose comme ça, je ne comprend pas, il me faudrais vraiment un exemple, ou un code, tout fait serait le mieux mais je doute que quelqu'un me le fasse, avec une explication de chaque ligne. :3

Regarde déjà la doc de explode() http://php.net/manual/fr/function.explode.php sachant que pour toi, le caractère 'delimiter' sera le '\n'

Cobryn
Auteur

Salut,

Merci j'ai regardé mais je ne voit pas en quoi cela peut m'etre utile.

Car exemple:

J'ai: 'Listening server on 0.0.0.0 query from 10018'

Si j'explode et que j'echo, sa va me faire:

echo $explode[0];
echo $explode[1];
echo $explode[2];
echo $explode[3];
........

Bref pour faire une phrase, .. sachant que je souhaite que tout se fasse automatiquement car panel d'admin avec log server :/

Tu utilises un foreach sur $explode, si tu ne connais pas les bases, je te conseille de suivre la formation PHP ;)

Cobryn
Auteur

D'accord, merci.
Mais là, suivre une formation me ferais prendre un retard énorme.
Si tu avez la possibilité de me faire le code, je t'en serait vraiment reconnaissant, car plusieurs jours que je bloque déjà :/

Malheuresement si tu comptes faire un panel d'administration, il va bien falloir que tu apprennes à coder ... si tu n'as pas envie de perdre du temps à apprendre, utilises un panel existant.

Cobryn
Auteur

Enfaite, je sais coder, j'ai déjà fait bcp de panel, mais req avec ssh et stylisé dans un tableau je n'ai jamais fait, en gros, sa reprend le principe de stylisé un .txt dans un tableau, je n'ai jamais fait sa.

Au niveau expérience, je sais faire un site qui peut faire paiement paypal/cb automatique, livraison et configuration de serveur dédié/vps automatiquement je ne suis pas vraiment débutant, mais je n'ai jamais utilisé ses fonctions la, tel explode et tout..

Donc bon, je comprend mieux quand on me fait le code avec explications ;)

Si c'est possible ce serait sympa :3

Bonsoir.

Mais là, suivre une formation me ferais prendre un retard énorme.

Il te parle de la formation sous forme de tutoriel vidéo sur le site et ça ne va pas te prendre un mois pour la suivre, surtout si tu as les bases en PHP.
Si tu penses que l'on va te faire un code plus ses explications, juste parce que tu ne veux pas prendre quelques heures à regarder des tutoriels, c'est que tu te moque de nous (sans vouloir être offensant).

Si tu ne peux pas le faire par toi même, demande à une personne de le faire mais au vue de la tache n'espère pas que se soit gratuit. Ca ne te rendra pas service et ni à la personne qui t'aidera.
Je rejoins les collègue sur ta solution c'est soit tu apprend, soit tu délègues mais faut mettre la main à la poche.

Cobryn
Auteur

C'est surtout, que je ne pense pas trouver ce que je veut dans la formation entre autre, explode un screen get contents