В Windows XP я могу запустить много команд из PHP с помощью функции shell_exec ().
Мне нужно использовать OfficeToPDF на Windows 10 с PHP.
Мой PHP-скрипт:
<?php
$command = 'OfficeToPDF input.docx output.pdf';
$exec = shell_exec($command);
echo $exec;
?>
Этот скрипт работает на Windows XP Professional, но не на Windows 7, 8, 10.
OfficeToPdf просто открывает Microsoft Word и сохраняет файл в формате PDF.
Что изменилось на win7, win8, win10? Почему я не смог выполнить эту команду из PHP на новых ОС?
У меня сервис apache запускается автоматически от пользователя SYSTEM.
ОБНОВИТЬ: Но я могу бежать OfficeToPDF input.docx output.pdf
Команда, когда я открываю окно cmd вручную.
Я подозреваю, что некоторые переменные среды отсутствуют, которые необходимы. Вы должны попробовать запустить его из экземпляра командного окна, который установит env vars по умолчанию:
$ command = 'cmd / c OfficeToPDF input.docx output.pdf'; $ exec = shell_exec ($ command); echo $ exec;
Возможно, вы захотите использовать полный путь к OfficeToPDF, input.docx и output.pdf в случае, если каталог по умолчанию неверен, или сначала вызовите chdir ().
Значение / C является:
/ C Выполняет команду, указанную в строке, а затем завершается
Других решений пока нет …