PHP 中 system()、exec() 和 shell_exec() 有什么区别?

2022-08-30 08:59:09

可以通过以下三个 PHP 函数运行外部命令:

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

但是它们有什么区别?尽管它们具有特定的应用,但在大多数情况下,它们可以同样使用。我很想知道当它们可以平等使用时,哪个是首选的。例如,对于解压缩文件或压缩文件夹(使用tar命令),哪一个是首选(可能从性能角度来看)?

更新:在另一个问题中,我发现了一个非常有用的链接,描述了这些功能的不同方面。我在这里分享链接,因为其他人可能会用它来更好地了解安全问题和其他方面。


答案 1

exec — 执行外部程序

system — 执行外部程序并显示输出

shell_exec — 通过 shell 执行命令,并以字符串形式返回完整输出

所以如果你不需要输出,我会选择exec。

更多详情:


答案 2

推荐