Возможный дубликат:
Выполнение команд Linux с помощью PHP
У меня есть файл PHP, который создает файл .xfdf
Мне интересно, имеет ли PHP способ выполнения команды, как вы бы .xfdf
в окне терминала? Мне нужно запустить следующую команду, когда после .xfdf
файла .xfdf
для создания файла .pdf
pdftk /var/www/pdf/TimeCard.pdf fill_form /var/www/pdf/results/Brandon_01_23_13.xfdf output /var/www/pdf/results/testNew.pdf flatten
Команда должна будет иметь возможность принимать переменную PHP, поэтому она настроена для пользователя. Есть простой способ сделать это?
Да, вы можете использовать функции exec () , pcntl_exec () , system () .
$command = 'pdftk /var/www/pdf/TimeCard.pdf fill_form /var/www/pdf/results/Brandon_01_23_13.xfdf output /var/www/pdf/results/testNew.pdf flatten'; exec($command);
Будьте очень осторожны при использовании этих команд, они очень полезны / мощны, но из-за этого хакер может потенциально получить доступ к вашему серверу через него (в зависимости от разрешений, но более чем достаточно для компрометации вашего сайта).
Если вам нужно отправить загруженные пользователем имена файлов / текст, проверьте их на наличие крови (например, проверьте, находится ли путь к файлу в нужном месте, а не ../../../something.pdf
, проверьте типы MIME и расширения).
Да, вы можете использовать:
В зависимости от ваших точных требований вы можете использовать функции exec()
, system()
или shell_exec()
Используйте функции system () или eval () .
Но убедитесь, что пользователь не может вводить произвольные команды!