最新消息:

PHP 调用系统命令函数示例讲解

PHP 572浏览 0评论

PHP 的内置函数 exec()、system()、passthru()、shell_exec()、都可以调用系统命令(shell 命令)。这些用函数能把 PHP 的一些操作,直接交给系统来处理,从而大大提高工作效率。

下面给出简单的示例对比说明一下各自的特点:

1、exec()

定义
string exec ( string $command [, array &$output [, int &$return_var]])
参数说明

    command 要执行的命令

    output 若提供此参数,则会用命令执行的输出填充此数组,每行输出填充数组中的一个元素。数组中不包含行尾空白符,如 \n。如果 $output 已经包含部分元素,exec() 函数会给        该数组末尾追加元素。

    return_var 若同时提供 output 和 return_var 参数,命令执行后,的返回状态会被写入到此变量。

示例代码
$shell = 'php -v';
echo exec($shell, $output);
echo PHP_EOL;
echo '===========================================';
echo PHP_EOL;
print_r($output);
输出结果

image.png

2、system()

定义
string system (string $command [, int &$return_var])
说明

    此函数跟 C 版本中的 system() 函数一样,执行 $command 参数所有指定的命令,并输出结果。该输出结果有经过处理,passthru() 函数的输出为原始输出。

返回值

        若提供 $return_var 参数,则外部命令执行后的返回状态会被记录到此参数。成功则返回命令输出的最后一行,失败则返回 FALSE.

示例代码
$shell = 'php -v';
system($shell);
输出结果

image.png

3、passthru()

定义
void passthru (string $command [, int &$return_var])
说明

    本函数可以获取一个命令未经任何处理的 原始输出。

返回值

    若提供 $return_var 参数,则返回值会被记录到此参数。void 类型,无返回值。

示例代码
$shell = 'php -v';
passthru($shell);
输出结果

image.png

4、shell_exec() 等同于 反撇号 `

定义
string shell_exec(string $cmd)
返回值

    命令执行的输出。如果执行过程发生错误或不产生输出,则返回 NULL. 因此不能通过本函数的返回值检验是否执行成功。若需要检查进程的退出码,可使用 exec().

说明:本函数同 执行操作符。意思就是说,shell_exec() 函数实际上 反撇号 (`)操作符的变体。

示例代码
$shell = 'php -v';
echo shell_exec($shell);
# 等同于下面执行方式
echo `{$shell}`;
输出结果完全一样:

image.png

转载请注明:微刻 blog.wecot.cn » PHP 调用系统命令函数示例讲解

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. ASP已经淘汰了,PHP如日中天。
    直流水泵2年前 (2018-11-30)回复