PHP 命令行工具 shell_exec, exec, passthru

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/) ?> 


你可能感兴趣的:(PHP,浏览器,shell,脚本,System,工具)