2012-02-02 1 views
0

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

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

Не можете ли вы просто ['implode()'] (http://php.net/manual/en/function.implode.php) получить результат из 'exec()', чтобы превратить его в строку? – JJJ

+0

эй, который сработал ... за долгое время застрял за эту глупую вещь ... большое спасибо –

ответ

2

Похоже, что вы ищете буферизацию вывода:

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

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

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

Смежные вопросы