Как показать полный вывод, даже если это ошибка? - PullRequest
0 голосов
/ 06 января 2020

У меня есть следующий скрипт php, в котором я пытаюсь выполнить команду на Windows и распечатать ее вывод. Я пробовал system () , shell_exe c () , passthru () и exe c () .

$cmd = $_POST['cmd'];
$result = array();
exec($cmd, $result);
foreach ($result as $line ){
 echo $line."<br>";
}

exe c ($ command, $ array) ближе всего к моему ожиданию печати всего, когда выполняется команда. Я буду sh печатать все, хотя это ошибка. Но он печатается только при успешном выполнении команды.

Как этого добиться?

1 Ответ

2 голосов
/ 07 января 2020

$result содержит только стандартный вывод команды, но сообщения об ошибках обычно записываются со стандартной ошибкой. Вам нужно перенаправить stderr в stdout при запуске команды.

$cmd = "$cmd 2>&1"
exec($cmd, $result);

Что в оболочке означает "2> & 1"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...