В чем различия между system(), exec() и shell exec() в PHP?
Можно запустить внешнюю команду с помощью трех функций PHP
system();
exec();
shell_exec();
Но в чем их различия? Несмотря на их специфическое применение, в большинстве случаев они могут быть одинаково использованы. Мне любопытно узнать, какой из них предпочтительнее, когда их можно использовать в равной степени. Например, для распаковки файла или сжатия папки (с помощью команды tar), какой из них предпочтительнее (возможно, с точки зрения производительности)?
ОБНОВЛЕНИЕ: В другом вопросе я нашел очень полезный ссылка описание различных аспектов этих функций. Я делюсь ссылкой здесь, так как другие могут использовать ее для лучшего понимания проблем безопасности и других аспектов.
1 answers
Exec - Выполнить внешнюю программу
Система - Выполнить внешнюю программу и отобразить выходные данные
Shell_exec - Выполнить команду через оболочку и вернуть полный вывод в виде строки
Так что, если вам не нужен вывод, я бы выбрал exec.
Более подробная информация: