Я пытаюсь написать PHP-скрипт , который позволит мне выбрать несколько файлов для загрузки из заданного местоположения. Я хочу, чтобы мой скрипт передал массив сценарию Powershell, который был написан ранее, и обработчик загрузки Powershell обрабатывает загрузку (в основном, файл php просто должен сообщить файлу powershell, что нужно скачать). Я просмотрел несколько вариантов, и кажется, что exec
– это команда, которую я должен использовать для этого (поскольку мне не нужен shell_exec
командной строки, мне не нужен shell_exec
).
До сих пор я отключил безопасный режим, чтобы позволить мне использовать эту команду. Я также должен отметить, что файл php будет запущен с сервера, однако файлы powershell находятся на локальном компьютере.
Фрагмент кода, который до сих пор обрабатывал прохождение param, выглядит следующим образом:
if(isset($_POST['formSubmit'])) { $choosePlugin = $_POST['wpPlugin']; $chooseTheme = $_POST['wpTheme']; if(isset($_POST['wpTheme'])) { echo("<p>You selected: $chooseTheme</p>\n"); exec('powershell.exe C:\Wordpress Setup\setupThemes.ps1 $chooseTheme'); } else { echo("<p>You did not select a theme</p>\n"); }
Я немного смущен тем, что я должен положить в exec
. Когда я запускаю вышеуказанный код, ошибок нет, но ничего не происходит. Я немного новичок в этом, поэтому я приношу свои извинения, если требуется дополнительная информация. Любая помощь приветствуется.
Стараться сделать:
echo exec('powershell.exe C:\\Wordpress Setup\\setupThemes.ps1 $chooseTheme');
для просмотра результатов powershell.exe (помните double \), также помещаем абсолютный путь в exe-файл:
echo exec('c:\\PATH_TO_POWERSHELL.EXE\\spowershell.exe C:\\Wordpress Setup\\setupThemes.ps1 $chooseTheme');
Если вы хотите передать содержимое переменной, вы должны использовать двойные кавычки для фактического расширения. Кроме того, вы должны указать имя сценария, потому что путь содержит пробелы:
exec("powershell.exe \"C:\Wordpress Setup\setupThemes.ps1\" $chooseTheme");