很多情况下需要php调用其他程序如shell命令、shell脚本、可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注意的地方。
前提:PHP没有运行在安全模式
如果PHP运行在安全模式下,那么在执行外部命令、打开文件、连接数据库、基于HTTP的认证这4个方面将会受到制约,可能在调用外部程序时无法获取预期的结果,此时需要设置特定目录,可以在php.ini中编辑safe_mode_exec_dir参数来指定。
- exec
原型:string exec ( string command [, array &output [, int &return_var]] )
描述:返回值保存最后的输出结果,而所有输出结果将会保存到 o u t p u t 数组, output数组, output数组,return_var用来保存命令执行的状态码(用来检测成功或失败)。
例子:$ret?=exec(“ls -al”, $output, $var);
注意:
A. 输出结果会逐行追加到 o u t p u t 中,因此在调用 e x e c 之前需要 u n s e t ( output中,因此在调用exec之前需要unset( outpu<