命令执行函数

常见函数

1
2
system exec passthru 
shell_exec 反引号 popen proc_open pcntl_exec

注意点:

  1. 如何运行
  2. 运行条件
  3. 参数
  4. 是否有回显

system

system(string $command,int &return_var=?)

作用

执行命令语句并输出回显

参数:

command:执行command参数所制定的命令,并且输出执行结果

return_var:如果提供return_var参数,则外部命令执行后的返回状态将会被设置到此变量中

有回显

参数 ———> 回显
提交命令 返回结果

举例

1
2
3
<?php
$cmd = $_GET['cmd'];
system($cmd); // 直接执行并输出,如?cmd=ls

exec

exec(string $command,array &$ouput=,&return_var=?)

作用

执行命令并存储在数组中

参数:

command:执行command参数所制定的命令,并且输出执行结果

output:用命令执行的输出填充此数组,每行输出填充数组的一个元素。即逐行填充数组,借用pring_r输出结果

有回显(但是只有最后一行),因此要借用print_r函数

参数 ———> 回显
提交命令 print_r 返回结果
output参数填充数组

passthru

passthru(string $command,int &return_var=?)

作用

执行命令,并输出回显

参数:

command:执行command参数所制定的命令,并且输出执行结果

return_var:如果提供return_var参数,则外部命令执行后的返回状态将会被设置到此变量中

有回显

参数 ———> 回显
提交命令 输出二进制数据流 返回结果

举例

1

shell_exec

shell_exec(string $command)

作用:

执行命令,并返回命令执行内容

参数:

command:执行command参数所制定的命令

无回显,借用echo/print等输出结果

参数 ———> 回显
提交命令 echo/print 返回结果

举例

1
echo shell_exec(ls)

反引号

1
`$command`

作用:

执行命令,并返回命令执行内容

参数:

command:执行command参数所制定的命令

无回显,借用echo/print等输出结果

参数 ———> 回显
提交命令 echo/print 返回结果

举例

1
cat flag.php

popen

proc_open()

pcntl_exec