2017-06-20 6 views
2

J'ai un simple script php 'top.php' avec la fonction shell_exec.Comment afficher la sortie de la commande 'top' sur un navigateur web en utilisant Php

code:

<?php 
echo shell_exec("top"); 
?> 

Ce que je cherche est de voir les résultats de la commande 'top' sur un navigateur Web. Donc, si j'accède http://192.168.1.1/top.php je veux voir les résultats de la commande supérieure. Il est essentiel de voir les résultats de la commande supérieure périodiquement comme vous le verriez dans un terminal de ligne de commande.

Cependant, lorsque j'accède à 'http://192.168.1.1/top.php' sur le navigateur Web, il n'affiche rien. Même comportement quand j'exécute top.php en ligne de commande (comme 'php top.php').

Je ne sais pas quoi ou où il va mal .....

+0

pourriez-vous faire 'var_dump (shell_exec (" top "));'? De cette façon, nous en saurons plus comme par exemple le type de retour – FMashiro

+0

Peut-être que 'top' ne quitte pas et retourne la sortie? Si je me souviens bien, vous pourriez faire quelque chose comme 'top -n 1' ou même' top -n 1 -b' pour avoir juste une page de sortie et sortir. – David

+0

[This post] (https://stackoverflow.com/questions/20107147#20109859) devrait répondre à votre question (: –

Répondre

2

top sur la ligne de commande par défaut ne cesse en cours d'exécution, alors je soupçonne que ce qui se passe ici est que ce n'est pas sortie et retour à la sortie PHP. Le drapeau -n 1 devrait répondre que:

<?php 
echo shell_exec("top -n 1"); 
?> 

Cela vous donnera une « page » de sortie de top à afficher sur votre page Web. Afin de l'actualiser, vous devez bien sûr actualiser la page Web. Pour rendre quelque chose un peu plus lisse (où vous n'avez pas besoin d'actualiser la page), vous pouvez avoir une page qui fait une requête AJAX à ce script PHP, puis affiche la sortie sur la page. Cette requête AJAX peut alors être planifiée avec setInterval() en JavaScript pour se produire toujours X secondes comme bon vous semble.

+0

Bon dieu, et je pensais être un novice PHP est suffisant pour faire le travail! :) Merci pour votre réponse détaillée, je vais commencer à chercher dans Ajax, livres JScript. – TP32