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

时间:2012-05-31 06:50:07

标签: php shell system exec shell-exec

可以通过

的三个PHP函数运行外部命令
system();
exec();
shell_exec();

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

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

1 个答案:

答案 0 :(得分:89)

exec - 执行外部程序

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

shell_exec - 通过shell执行命令并将完整输出作为字符串

返回

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

进一步详情: