Ответ PHP-сервера на Android при выполнении командного файла - PullRequest
1 голос
/ 11 мая 2011

У меня есть приложение, которое находится в Java, и я создал пакетный файл (.bat) этого приложения и запустил его в php, как это

   <?php
      system ("cmd.exe /c final.bat");
   ?>

Выходные данные примерно такие

C: \ wamp \ www \ php> java -jar Наиболее близка эта ... C: \ wamp \ www \ php> pause Нажмите любую клавишу для продолжения.,.

Я вызываю это через приложение для Android и хочу, чтобы это было в качестве ответа ... Можете ли вы сказать мне, как это сделать ... Было бы здорово, если бы я мог исключить подсказки из ответа.

Ответы [ 2 ]

0 голосов
/ 12 мая 2011

Проверьте функцию exec . Вместо автоматической печати вывода он вернет вывод в виде строки или необязательного массива строк во втором аргументе. Затем вы можете разобрать эту строку или массив и распечатать только то, что вам нужно.

Пример, который будет печатать все, кроме первой строки вывода:

exec('cmd.exe /c final.bat',$output);
for($i = 1; $i < count($output); ++$i) echo $output[$i],'<br />';
0 голосов
/ 11 мая 2011

system возвращает любой вывод команды, поэтому простой

echo system(...);

сделает трюк. Чтобы иметь возможность отправлять текст в качестве входных данных для вызываемой команды, вы должны использовать popen() вместо этого, что позволяет вам «использовать» вызываемую команду, как если бы вы использовали ее из командной строки оболочки / командной строки. .

Обратите внимание, что system будет блокироваться до завершения внешней программы. В вашем случае, когда он сидит там с «нажатием любой клавиши для продолжения», этого никогда не произойдет, и ваш PHP-процесс будет простоять там бесконечно (или до тех пор, пока не будет превышено max_execution_time, в зависимости от того, что наступит раньше).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...