В PHP существует несколько методов, чтобы выполнить команду оболочки:Выполнение программы в PHP - дисплея и возврата вывода
- системы()
- PassThru()
- shell_exec()
- EXEC ()
Первые два дисплея выводятся, но не возвращают его. Последние два вывода выводятся, но не отображают его.
Я хочу запустить команду оболочки, для которой требуется много времени, но она отображает некоторый вывод, поэтому я знаю, что он не зависает. Однако в конце я хочу обработать этот вывод в php. Если я выберу одно из первых двух, я не получу выход, поэтому я не смогу обработать его в php. Если я запустил один из двух последних, я смогу обработать выходные данные, но моя программа будет висеть очень долго, не выводя ничего.
Есть ли способ запустить команду оболочки, которая немедленно отобразит вывод и вернет его?
ли второй аргумент системы() позвонить не поможет? – KTastrophy
Второй аргумент - это статус возврата выполненной команды, например. 0, если все было нормально и 1, если была ошибка. Я должен упомянуть, что мне тоже нужно - shell_exec() - тот, который этого не поддерживает. –
Я не думаю, что есть какая-либо команда PHP, которая будет выполнять код оболочки и выводить вывод на экран перед завершением выполнения. – Travesty3