PHP为执行外部命令提供了函数,其中包括shell_exec(),exec(),passthru(),system().
1.shell_exec()
命令行实际上仅是后撇号(`)操作符变体。返回命令执行后的输出
例如,下面命令显示了如何使用反撇号在当前目录中获取/usr文件下的的文件列表。
a)基于Shell脚本
#! /bin/sh
ls /usr
b)PHP中调用shell_exec() ,运行相同的命令
<?php $lists = shell_exec('ls /usr'); echo $lists; ?>
2.passthru()
允许您运行外部程序,并在屏幕上显示结果。
不需要使用 echo 或 return 来查看结果,它会将输出结果直接输出到浏览器(或当前终端).
您可以添加可选的参数,即保存从外部程序返回的代码的变量,比如表示成功的 0,这为调试提供更好的机制。
<?php passthru('ls /usr | head -5',$returnval); if($returnval){//$returnval>1,则表示有错误 echo '脚本错误'; }else{ echo '目录列出完成'; } ?>
3.exec()
exec() 命令与 shell_exec() 相似,不同之处是它返回输出的最后一行,并且可选地用命令的完整输出和错误代码填充数组。
a)运行 exec() 而不捕捉数据数组中的数据
<?php $results = exec('ls /usr | head -5'); echo $results; //仅仅输出最后一行结果 ?>
b)从 exec() 捕捉数据数组的结果
<?php $results = exec('ls /usr | head -5',$data); print_r($data); //返回数据的数组格式 //格式如下: //Array ( [0]=> test [1] => local/) ?>