Мне нужна небольшая информация о выполнении .exe-файла с использованием PHP-скрипта. Я прочитал, что можно выполнить файл .exe с помощью exec () или passthru () или echo system ().
Возможно ли запустить файл .exe, хранящийся на моем компьютере с Windows, скажем, в каталоге C: или файл .exe должен храниться на веб-сервере, чтобы запустить его через скрипт php.
Если это так, мне нужно указать путь к файлу .exe для функции exec (), например: file.exe хранится в C: \ Programs \ mydocs \ file.exe.
Могу ли я сохранить этот путь в переменной типа
$path = C:\Programs\mydocs\file.exe;
и передать его как echo exec ($ path);
Загрузка вопросов, я хотел бы узнать мнения из PHP profis.
благодаря
Нет, ваш пример – синтаксическая ошибка
Да, если вы укажете строку: –
$path = 'C:\Programs\mydocs\file.exe';
Возможно ли запустить файл .exe, хранящийся на моем компьютере с Windows, скажем, в каталоге C: или файл .exe должен храниться на веб-сервере, чтобы запустить его через скрипт php.
PHP может выполнять только файлы на сервере, на котором он запущен (он также должен иметь права для этого).
Если вы пытаетесь сделать то, что, как я думаю, вы пытаетесь сделать, что будет выполнять команду на машине пользователя, то, что остановить кого-то от использования:
exec('format c:');
И отформатируйте диски своих посетителей C?
Могу ли я сохранить этот путь в переменной типа
$path = C:\Programs\mydocs\file.exe;
и передать его как echo exec ($ path);
Это даст вам синтаксическую ошибку, вам понадобятся кавычки:
$path = 'C:\Programs\mydocs\file.exe';
В вашем вопросе не совсем ясно, где именно работает ваш PHP-скрипт. Если он работает на веб-сервере, который не является вашей рабочей станцией, то просто нет; вы не можете открыть локальное приложение через PHP, работающий на другом сервере. Приложение, которое вы хотите запустить, должно быть на том же сервере, что и скрипт PHP.
Тем не менее, если вы хотите запустить приложение на своей локальной рабочей станции или на сервере, то это просто:
exec('C:\path\to\program.exe');
Обязательно используйте одиночные кавычки ('C: \ path \ to \ program.exe') или двойные обратные косые черты с двойными кавычками ("C: \ path \ to \ program.exe"). В этом случае одиночные кавычки немного более эффективны и более уместны.
Вы можете сохранить путь как переменную, если вы используете цитату, в другом случае (без цитаты), которая покажет вам синтаксическую ошибку. Попробуйте следующие два синтаксиса:
$path = 'C:\Programs\mydocs\file.exe';
или двойная кавычка
$path = "C:\Programs\mydocs\file.exe";
Вы можете выполнить этот файл только в том случае, если он находится на серверной машине, и серверный процесс имеет соответствующие права на доступ к нему / его выполнение. Вы не можете выполнять файлы на удаленной машине пользователя.
В зависимости от системы безопасности * на сервере вы, вероятно, сможете делать то, что хотите.
Однако, учитывая, что вы мало знаете о синтаксисе PHP, я сомневаюсь, что вы должны играть с exec()
.
*, например suexec или chrooting apache , или включение безопасного режима на PHP или запуск его как отдельной службы (в окнах) . Вы заметили, что многое может пойти не так?