Я пытаюсь запустить file_creator.exe через PHP, который принимает некоторые аргументы и создает выходной файл. так как я могу получить имя выходного файла, чтобы создать ссылку для скачивания?
Вопрос
Выполнить внешнюю программу в php и вернуть ссылку на скачивание выходного файла
- shell_exec после запуска вернуть результаты выполнения mohammad mohsenipur 14.06.2013
- Взгляните на proc_open() для взаимодействия с процессом . James Birkett 14.06.2013
Ответы
Ответ 1 · рейтинг 1 · Mathieu Dumoulin
Вы захотите использовать функцию shell_exec() в PHP (http://php.net/manual/en/function.shell-exec.php), чтобы запустить исполняемый файл. Передайте параметры в командной строке, например:
<?php
$outputOfExecutable = shell_exec("C:\\path\\to\\cmd.exe /c C:\\batchfile.cmd");
?>
Все, что ваш исполняемый файл возвращает в конце его выполнения, возвращается в ваш PHP-скрипт. Это означает, что ваш исполняемый файл должен возвращать путь к файлу, который он сгенерировал, чтобы вы могли прочитать его с помощью PHP, или он мог бы вернуть содержимое файла, и вы записываете его на диск, как хотите.
Ответ 2 · Piotr
Обратите внимание на библиотеку процессов Symfony. Его намного проще и безопаснее использовать, чем просто функции PHP, такие как shell_exec или proc_open. Symfony Process поддерживает эти функции и обеспечивает дополнительный уровень безопасности.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Как отличить URL-адрес на сервере или вне сервера (удаленно)?
- Вывод эха в php в теле #, а не ссылка
- Как использовать протокол TLS на cURL?
- Отключить вход в Shibboleth на одном URL-маршруте в Apache mod_rewrite
- 'exec' - выполнение tcl-файла из обернутого приложения TclApp
- PHP exec - эхо-вывод построчно во время выполнения