Как запустить файл .cmd из PHP и отобразить результаты - PullRequest
4 голосов
/ 18 июля 2009

Мне нужно запустить командный файл .cmd из скрипта php.

PHP будет доступен через сеанс аутентификации в браузере.

Когда я запускаю файл .cmd с рабочего стола сервера, он выводит некоторые данные в cmd.exe.

Я бы хотел перенаправить этот вывод обратно на страницу php.

Это выполнимо?

Ответы [ 5 ]

4 голосов
/ 18 июля 2009

Да, это выполнимо. Вы можете использовать

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

и распечатать содержимое массива:

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

смотрите здесь для получения дополнительной информации

2 голосов
/ 18 июля 2009

Я предпочитаю использовать popen для такого рода задач. Особенно для длительных команд, потому что вы можете извлекать вывод построчно и отправлять его в браузер, так что вероятность таймаута меньше Вот пример:

$p = popen('script.cmd', 'r');
if ($p)
{
    while (!feof($p))
        echo gets($p);    // get output line-by-line
    pclose($p);
}
2 голосов
/ 18 июля 2009
$result = `whatever.cmd`;
print $result; // Prints the result of running "whatever.cmd"
1 голос
/ 18 июля 2009

Используйте функцию php popen ()

1 голос
/ 18 июля 2009

Вы можете использовать shell_exec или оператор backticks , чтобы запустить команду и получить вывод в виде строки.

Если вы хотите передать параметры этой команде, вы должны предусмотреть использование escapeshellargs , чтобы экранировать их перед вызовом команды; и вы можете взглянуть на escapeshellcmd тоже ^^

...