системная команда php с кодом выхода и возврата - PullRequest
0 голосов
/ 02 февраля 2012

Я ищу что-то в php, которое дало бы вывод (raw) системной команды в переменной вместе с кодом возврата.

  • exec делает это, но выходные данные находятся в массиве и, следовательно, возвращаемые данные не являются правильными (поскольку \n входит в новый индекс).
  • system выводит данные в выходной поток, а нев переменной.
  • shell_exec не дает возвращаемого значения, но дает необработанные данные.

1 Ответ

2 голосов
/ 02 февраля 2012

Звучит так, будто вы ищете буферизацию вывода:

ob_start();
system($command, $returnCode);
$output = ob_get_clean();

Это должно сохранить все пробельные символы в конце каждой строки вывода (exec, как вы написали, уничтожает их, поэтому implode не будет вариантом).

В качестве альтернативы, вы можете открыть процесс и получить каналы (стандартный вывод, STDOUT) и прочитать выходные данные из них. Но это сложнее (но дает вам больше возможностей). См. proc_open.

...