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

标签 php shell system exec shell-exec

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

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

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

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

最佳答案

exec — 执行外部程序

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

shell_exec — 通过 shell 执行命令并将完整的输出作为字符串返回

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

更多细节:

关于php - PHP 中的 system()、exec() 和 shell_exec() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10828707/

相关文章:

php 32 位日期解析 1901 年 12 月 13 日之前的日期

php - getUser() 在 Facebook SDK PHP 中不起作用

bash - 如何在 ubuntu 的 shell 脚本中运行 .profile

python - Tkinter:如何制作系统托盘应用程序?

php - 从 PHP 中的大数中减去 1

php - 替换数组值

ruby - 在 Shell 脚本上运行 .rb (Ruby) 文件

linux - 如何在 linux 中返回文件中第一次出现文本的行号

linux - lvcreate 在物理卷上创建什么?会删除数据吗?

c# - 允许系统帐户启动模拟进程