system()
执行shell,并直接打印,也返回结果。
exec()
执行shell,返回执行结果,但不直接打印。
passthru()
将执行结果输出到标准设备,然后返回状态码。
popen()
打开一个进程管道来执行给定的命令,返回一个文件句柄。
可以通过设置只读或只写模式,并进行交互。
可以使用pclose()函数来关闭它,从而做到立即返回(命令会后台继续执行)。
proc_open()
类似 popen() 函数, 但是 proc_open() 提供了更加强大的控制程序执行的能力。
示例:
$descriptor = [
0 => ['pipe', 'r'],
2 => ['file', $log, 'a']
];
proc_open(
$cmd,
$descriptor,
$pipes
);
proc_get_status — 获取由 proc_open() 函数打开的进程的信息
- 标准输入(stdin):文件描述符为 0,通常是键盘输入。
- 标准输出(stdout):文件描述符为 1,通常是屏幕输出。
- 标准错误(stderr):文件描述符为 2,通常是屏幕输出。