当前位置: 首页 > 知识库问答 >
问题:

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

通寂离
2023-03-14

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

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

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

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

共有1个答案

狄鸿禧
2023-03-14

Exec-执行外部程序

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

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

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

进一步详情:

  • http://php.net/manual/en/function.exec.php
 类似资料:
  • 我目前有一个PHP页面,我的网络服务器服务。为了显示我需要在页面上显示的所有信息,我需要从外部python脚本输出。所以我一直在使用php的exec()命令来执行python脚本,并捕获字符串数组中的输出,如下所示: 然而,从来没有任何要打印的条目,但是当我直接在服务器的控制台上运行该命令时,它将正确输出。我已经尝试在我正在执行的网页上回显命令,这是正确的命令。我认为它唯一能做的就是exec()不

  • 问题内容: 我努力理解之间的区别和… 我一直习惯于执行服务器端命令,何时使用? 是否只是一个速记?较少的参数似乎是同一件事。 问题答案: 以字符串形式返回所有输出流。默认情况下返回输出的最后一行,但是可以将所有输出作为指定为第二个参数的数组提供。

  • (网上有人提到这一点,但没有一个解决方案奏效。)我希望能够从PHP脚本中使用shell_exec和exec。 含义,用途: 或者 根据我在网上找到的链接(http://forums.cpanel.net/f5/enable-shell_exec-one-user-109601.html),一种方法是在VirtualHost下添加指令: 但是,当我查看配置文件,试图重新启动网络服务器,我得到: 并且

  • 问题内容: 考虑: 我尝试通过以下方式调用此过程: 但这只会产生 但是,如果我将其更改为 一切正常。尽管文档指出这是正确的语法,但这仍然可行。 为什么什么时候不工作? 问题答案: 如您的文档所述,Yup ..是可从ODBC驱动程序使用的构造/语法。 还有的T-SQL文档中没有提及,只。 它不起作用,因为它不是T-SQL。

  • 问题内容: 简单的问题: php中的’和’有什么区别?什么时候应该使用两者之一? 问题答案: 基本上,单引号字符串是纯文本,几乎没有特殊情况,而双引号字符串具有变量插值(例如)以及转义序列,例如“ \n”(换行符)。 您可以在PHP的手册中了解有关字符串的更多信息。

  • 在碳中。它显示的Laravel 8附带的php源文件 基本测试表明,给定输入“2021-11-26 11:25:10.000000”,两个函数都将其取整为“2021-11-26 11:26:00.000000”。 我想知道这两个函数之间有什么区别吗? 任何帮助都将不胜感激。