加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP shell_exec()与exec()的区别

发布时间:2020-05-30 19:28:44 所属栏目:PHP 来源:互联网
导读:本文章向大家介绍PHP shell_exec()与exec()的区别,需要的朋友可以参考一下。

我很难理解shell_exec()和exec()之间的区别

我一直习惯使用exec()执行服务器端命令,但不知道shell_exec()什么时候使用?

shell_exec()是否只是exec()的一个速记?参数较少似乎是一样的。

区别:

shell_exec将所有输出流作为字符串返回。exec默认情况下返回输出的最后一行,但可以将所有输出提供为指定为第二个参数的数组。

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

exec- 执行外部程序。

不同之处在于,shell_exec您将输出作为返回值。

使用exec(),您可以传递一个可选的param变量,该变量将接收一组输出行。在某些情况下,这可能会节省时间,尤其是在命令输出已经是表格的情况下。

比较:

exec('ls',$out);

var_dump($out);

// Look an array

$out = shell_exec('ls');

var_dump($out);

// Look -- a string with newlines in it

相反,如果命令的输出是xml或json,那么将每一行作为数组的一部分并不是你想要的,因为你需要将输入后处理成其他形式,所以在这种情况下使用shell_exec 。

值得指出的是,shell_exec是fortic运算符的别名,对于那些用于* nix的运算符。

$out = `ls`;

var_dump($out);

exec还支持一个附加参数,该参数将提供执行命令的返回码:

exec('ls',$out,$status);

if (0 === $status) {

var_dump($out);

} else {

echo "Command failed with status: $status";

}

如shell_exec手册页中所述,当您实际需要从正在执行的命令返回代码时,您别无选择,只能使用exec。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读