2013-12-26 3 views
-1

Я в настоящее время работаю над локальным WAMP-сервером, и я хотел бы выполнить .exe непосредственно из моего браузера (для управления игроком AIMP с командами) Я пробовал все функции PHP для этого, но ни один из них не выполняет файл .exe.Execute .exe с php

С помощью exec() я могу вызывать «java -jar» или запускать .bat, но всякая попытка для файла .exe выходит из строя (даже если я вызываю в PHP Java-приложение, которое запускает сам .exe).

Дополнительные сведения: Безопасный режим отключен PHP 5.3.13 Apache 2.2.22

У вас есть идея для моей проблемы?

спасибо.

+0

Исполняемый файл может быть вызван только в том случае, если он находится на том же пути, что и ваш скрипт, или B) включен как часть вашей переменной PATH Windows. 'shell_exec ('some_file.exe');' – Ohgodwhy

+0

Каким образом это не удается? Какую строку кода вы используете для ее вызова? Есть ли сообщение об ошибке или что-то в журналах PHP? – David

+0

Ohgodwhy: Я попытался скопировать мою программу в папку сценария PHP или изменить переменную пути Windows, но она все еще не работает. – Bakakun

ответ

0

Я бы предложил написать простую функцию, чтобы сделать фон exec() непосредственно из браузера и настроить некоторый вывод - что, вероятно, может показать вам ошибку. Итак:

function background_exec($command) 
{ 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
     pclose(popen('start /B ' . $command, 'r')); 
    } 
    else { 
     exec($command . ' 2>&1 > /dev/null &'); 
    } 
} 

Этот материал, как вы видите, будет работать как под выиграть и шухер. И называя его WAMP под выиграть будет:

$command = 'C:\path_to_your_directory\program.exe > C:\path_to_your_directory\logfile.log'; 
background_exec($command); 

Это работало отлично для меня, хотя, я никогда не испытывал проблемы с запуском .exe файлы таким образом.

+0

К сожалению, 'background_exec ('' C: \ Program Files (x86) \ AIMP3 \ AIMP3.exe"/STOP '); 'все еще ничего не делает. И перенаправление в файл журнала просто создает пустой файл. – Bakakun

+1

Хм ... Вероятно, вы пытались запустить его напрямую через командную строку - это работает? Если да, проблема в том, что функции PHP exec на вашем WAMP просто не знают, как обрабатывать расширение .exe. – Nevertheless

-1

Я, наконец, решил использовать websockets, чтобы решить мою проблему (с трещоткой). Таким образом, я могу вызывать свой сценарий из моего браузера, передавая аргументы, необходимые мне для исполняемого файла.

PHP в CLI, похоже, не имеет проблем с exec() в .exe-файлах.