Sortie en direct avec PHP utilisant popen() et passthru()
La fonction shell_exec() de PHP vous permet d'exécuter une commande et de capturer son sortir. Cependant, l'affichage de la sortie en direct pendant l'exécution de la commande n'est pas possible avec shell_exec() ou d'autres fonctions intégrées comme system(), exec() ou passthru().
Pour une sortie en direct, pensez à utiliser popen( ) plutôt. Il ouvre un canal vers un processus et vous permet de lire ou d'écrire ses entrées/sorties comme s'il s'agissait d'un fichier.
Passthru() pour une sortie immédiate :
Si vous devez afficher la sortie directement à l'utilisateur sans attendre la fin de la commande, vous pouvez utiliser passthru() :
echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo '';
Popen() pour la sortie en temps réel :
Pour afficher la sortie en direct pendant l'exécution de la commande, utilisez popen() et un while loop :
while (@ ob_end_flush()); // end output buffers $proc = popen($cmd, 'r'); echo '<pre class="brush:php;toolbar:false">'; while (!feof($proc)) { echo fread($proc, 4096); @ flush(); } echo '';
Ce code ouvre un canal vers la commande, lit sa sortie en morceaux et l'affiche sur le fly.
Informations utiles :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!