У меня есть приложение, которое находится в java и я создал пакетный файл (.bat) этого приложения и запускал его в php, как это
<?php system ("cmd.exe /c final.bat"); ?>
Результат выглядит примерно так:
C: \ wamp \ www \ php> java -jar Наиболее пристальное внимание – это … C: \ wamp \ www \ php> pause Нажмите любую клавишу, чтобы продолжить. , ,
Я вызываю это через свое приложение для Android и хочу, чтобы это было ответом … Можете ли вы рассказать мне, как это сделать … Было бы здорово, если бы я смог устранить подсказки от ответа.
Проверьте функцию exec . Вместо автоматической печати вывода он возвращает результат как строку или в необязательный массив строк во втором аргументе. Затем вы можете проанализировать эту строку или массив и распечатать только то, что вам нужно.
Пример, который будет печатать все, кроме первой строки вывода:
exec('cmd.exe /c final.bat',$output); for($i = 1; $i < count($output); ++$i) echo $output[$i],'<br />';
system
возвращает любой результат из команды, поэтому простой
echo system(...);
сделал бы трюк. Чтобы иметь возможность отправлять текст в качестве входных данных для вызываемой команды, вы должны посмотреть на использование popen()
вместо этого, что позволяет вам «использовать» вызванную команду, как если бы вы использовали ее из командной строки.
Обратите внимание, что system
будет блокироваться до завершения внешней программы. В вашем случае, когда он сидит там, «нажмите любую клавишу, чтобы продолжить», этого никогда не произойдет, и ваш PHP-процесс будет просто сидеть там неограниченно (или до тех пор, пока max_execution_time
будет превышено, в зависимости от того, что наступит раньше).