Подтвердить что ты не робот

Каковы различия между system(), exec() и shell_exec() в PHP?

Можно выполнить внешнюю команду тремя функциями PHP

system();
exec();
shell_exec();

но каковы их отличия? Несмотря на их конкретные применения, в большинстве случаев их можно использовать одинаково. Мне любопытно узнать, какой из них предпочтительнее, когда они могут быть одинаково использованы. Например, для распаковки файла или сжатия папки (с помощью команды tar), какой из них предпочтительнее (возможно, с точки зрения производительности)?

ОБНОВЛЕНИЕ: В другом вопросе я нашел очень полезную ссылку, описывающую различные аспекты этих функций. Я разделяю ссылку здесь, поскольку другие могут использовать, чтобы лучше понять проблемы безопасности и другие аспекты.

4b9b3361

Ответ 1

exec - выполнить внешнюю программу

system - выполнить внешнюю программу и отобразить вывод

shell_exec - Выполнить команду через оболочку и вернуть полный вывод в виде строки

поэтому, если вам не нужен вывод, я бы пошел с exec.

Дополнительная информация: