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


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

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

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

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

Author: guaka, 2012-05-31

1 answers

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

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

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

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

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

 89
Author: Gavriel, 2017-05-24 01:55:22