Действительно ли возможно выполнить команды cmd в Windows OS с должностным лицом PHP () функция?
Я попробовал это:
<?php
try {
echo exec(
'O:\test\pdftk.exe O:\test\outputs\OPP\out.pdf O:\test\outputs\OPP\out2.pdf cat output O:\test\123.pdf'
);
} catch (Exception $e) {
echo $e->getMessage();
}
В основном я пытаюсь объединить два файла PDF с pdftk программой. Если я просто пишу ту же точную команду в cmd вручную, это работает, и O:\test\123.pdf файл создается. Но когда я выполняю вышеупомянутое файл PHP, ничего не происходит (пустая страница, файл не создается).
Может ли ваш пользователь PHP получить доступ к cmd.exe? Вы можете найти инструменты на Microsoft Sysinternals очень полезными; особенно монитор процесса.
Попробуйте сбежать разделитель каталогов:
exec("O:\\test\\pdftk.exe O:\\test\\outputs\\OPP\\out.pdf O:\\test\\outputs\\OPP\\out2.pdf cat output O:\\test\\123.pdf");
Или, что еще лучше, используйте вместо них одинарные кавычки:
exec('O:\test\pdftk.exe O:\test\outputs\OPP\out.pdf O:\test\outputs\OPP\out2.pdf cat output O:\test\123.pdf');
попробуйте выполнить, используя привилегии администратора для командной строки