Я пытаюсь получить выходные данные команды, которые будут отображаться в браузере клиентов при выполнении фактической команды, пока она успешно завершает команду, а затем отображаются все соответствующие выходные данные. Однако, так как это может занять до 30 секунд, я бы хотел, чтобы текущий вывод, отображаемый на экране оболочки, передавался в реальном времени браузеру. Команда должна быть запущена нажатием кнопки.
Кнопка
<div class="inner"><form action="" method="post">
<button type="submit" name="button5">Update Game Server</button>
</form>
</div>
Код для запуска системной команды
<code><?php
if (isset($_POST['button5'])) {
chdir('/home/aname/steamcmd/');
echo '<br></br>';
echo '<pre>';
echo shell_exec ('./steamcmd.sh +logon aname apass +app_update validate +quit');
echo '
';}?>
Я видел похожие посты, где люди предлагали использовать passthru(), popen(), ob_flush() & flush()
, однако, если я использую эти опции вместо system_exec()
, они не обновляют страницу, они снова показывают только законченный вывод в браузере один раз за весь процесс завершен.
Я подозреваю, что способ реализации кнопки может быть больше проблемой, чем способ, которым команда фактически отправляется в систему, но не уверен, что попробовать.
Apache / 2.4.29, CentOS 7, версия PHP: 5.6.30