выполнить exe-файл из приложения с системой - PullRequest
0 голосов
/ 17 февраля 2012

У меня есть приложение Gams , которое я хочу запустить через код php наконец, после многих попыток я обнаружил, что для запуска в командной строке я должен перейти к C:\Program Files\GAMS23.7 и запустить в командной строке команду для запуска приложения следующим образом:

gams.exe trnsport_php.gms

Gams будет успешно запущен в командной строке. Теперь я хочу запустить его в php. Я добавил псевдоним с этим путем

C: \ Program Files \ GAMS23.7

и тогда я создал там свой php файл когда я хочу выполнить его с помощью этого кода в php:

if(system('gams.exe trnsport_php.gms'))
echo 'Not Error';
else echo'Error';

показывает мне ошибку

и снова используя это:

if(system('./gams.exe trnsport_php.gms'))
echo 'Not Error';
else echo'Error';

напечатал снова Ошибка

Я тоже пробовал exec, но безрезультатно, я не знаю, что здесь не так. этот тоже не работает:

if(system ("\"C:\\Program Files\\GAMS23.7\\gams.exe \"C:\\Program Files\\GAMS23.7\\trnsport_php.gms"))
echo'success';
else
echo 'no';

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Я нашел проблему, я не знаю почему, но я должен пойти в командную строку и просто вызвать игру

echo exec('C:\WINDOWS\system32\cmd.exe');
echo exec('gams.exe trnsport_php.gms');
0 голосов
/ 17 февраля 2012
Команда

system и exec возвращает false в случае ошибки и последнюю строку из результата выполненной команды в случае успеха.Чтобы проверить, выполняется ли команда успешно, вы должны использовать ее следующим образом:

if (system('./gams.exe trnsport_php.gms') === FALSE)
  echo 'error';
else
  echo 'success';

Если вы не используете === FALSE, вы также увидите «Ошибка», если не выводится никакой информации.

Возможно, попробуйте использовать passthru, чтобы увидеть необработанный вывод выполненной команды.

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