В чем разница между функциями system(), exec() и shell_exec() в PHP?

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

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

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

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

64
задан fifi finance 18 September 2015 в 18:26
поделиться