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


можно запустить внешнюю команду с помощью трех PHP функций

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

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

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

1 62

1 ответ:

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

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

shell_exec - выполняет команду через Шелл и возвращает полный вывод в виде строки

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

более подробная информация: