Запустите .exe в PHP

У меня есть приложение, которое должно запустить .exe , которое запускает выполнение сканера . У меня есть исполняемый файл на диске C, но я не могу найти способ его запустить.

2
задан 10.01.2017, 22:22
0 ответов

У тебя есть несколько альтернатив:

  • exec ("c:\abc.exe", $resultado);

    И тогда с одним var_dump($resultado); ты сможешь видеть результат твоей программы, элемент array из-за линии, посланной в stdout.

  • passthru ("c:\abc.exe", $out);

    Сюда функция возвращает код вывода программы в $out

  • Используя pipes и proc_open ()

    Часто output командной строки не является таким "надежным", как один хотел, если он не возвращает тебя, output правильно возможно, что ты должен считать, использовать pipes, чтобы захватывать все, это немного сложнее.

    $proceso = proc_open('cmd', [["pipe", "r"], ["pipe", "w"], ["pipe", "w"]], $pipes); //abrimos el proceso cmd.exe proceso con 3 pipes, stdin, stdout y stderr if (is_resource($proceso)) { //si se ha creado el proceso... fwrite($pipes[0], '"C:\mis archivos\ejecutable.exe"'); //enviamos comando fclose($pipes[0]); //cerramos el pipe stdin... echo stream_get_contents($pipes[1]); //mostramos el output del pipe stdout fclose($pipes[1]); //cerramos el pipe stdout echo stream_get_contents($pipes[2]); //mostramos el output del pipe stderr fclose($pipes[1]); //cerramos el pipe stderr echo proc_close($proceso); //cerramos el proceso }

  • $out = shell_exec ("c:\abc.exe");

    Здесь у тебя будет тот, который послан в stdout в $out

  • $out = system ("c:\abc.exe", $codigo)

    В конце концов здесь у тебя будет то, что он посылает stdout в $out и adicionalmente код вывода программы в $codigo

3
ответ дан 03.12.2019, 17:46