4 votes

Comment exécuter un fichier .cmd à partir de PHP et afficher les résultats ?

Je dois exécuter un fichier batch .cmd à partir d'un script php script.

Le PHP sera accessible via une session authentifiée dans un navigateur.

Lorsque j'exécute le fichier .cmd depuis le bureau du serveur, il génère une sortie vers cmd.exe.

J'aimerais renvoyer cette sortie vers la page php.

Est-ce faisable ?

4voto

Peter Parker Points 13770

Oui, c'est faisable. Vous pouvez utiliser

exec("mycommand.cmd", &$outputArray);

et imprimer le contenu du tableau :

echo implode("\n", $outputArray);

Regardez ici pour plus d'informations

2voto

Ian P Points 417
$result = `whatever.cmd`;
print $result; // Prints the result of running "whatever.cmd"

2voto

Milan Babuškov Points 20423

Je préfère utiliser popen pour ce genre de tâche. En particulier pour les commandes de longue durée, car vous pouvez récupérer la sortie ligne par ligne et l'envoyer au navigateur, ce qui réduit les risques de dépassement de délai. Voici un exemple :

$p = popen('script.cmd', 'r');
if ($p)
{
    while (!feof($p))
        echo gets($p);    // get output line-by-line
    pclose($p);
}

1voto

Pascal MARTIN Points 195780

Vous pouvez utiliser shell_exec ou le opérateur de retour en arrière pour lancer une commande et obtenir la sortie sous forme de chaîne.

Si vous souhaitez passer des paramètres à cette commande, vous devez envisager d'utiliser la commande escapeshellargs pour les échapper avant d'appeler la commande ; et vous pouvez jeter un coup d'œil à escapeshellcmd aussi ^^

1voto

Steve Points 36

Utilisez la fonction php popen()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X