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

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

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

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

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

1 ответов


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

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

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

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

дальнейшие подробности: