一般情况下,很少会用php去执行linux命令,不过特殊情况下,你也许会用到这些函数。以前我知道有二个函数可以执行linux命令,一个是exec,一个是shell_exec。其实有很多的,结合手册内容,介绍以下6个函数。

1,exec函数

	<li><?php??? ?</li>
	<li>$test?=?"ls?/tmp/test";???//ls是linux下的查目录,文件的命令??? ?</li>
	<li>exec($test,$array);???????//执行命令??? ?</li>
	<li>print_r($array);??? ?</li>
	<li>?>???</li>

2,system函数

	<li><?php??? ?</li>
	<li>$test?=?"ls?/tmp/test";??? ?</li>
	<li>$last?=?system($test);??? ?</li>
	<li>print?"last:?$lastn";??? ?</li>
	<li>?>???</li>

3,passthru函数

	<li><?php??? ?</li>
	<li>$test?=?"ls?/tmp/test";??? ?</li>
	<li>passthru($test);??? ?</li>
	<li>?>??</li>

4,popen函数

	<li><?php??? ?</li>
	<li>$test?=?"ls?/tmp/test";??? ?</li>
	<li>$fp?=?popen($test,"r");??//popen打一个进程通道??? ?</li>
	<li>?? ?</li>
	<li>while?(!feof($fp))?{??????//从通道里面取得东西??? ?</li>
	<li>?$out?=?fgets($fp,?4096);??? ?</li>
	<li>?echo??$out;?????????//打印出来??? ?</li>
	<li>}??? ?</li>
	<li>pclose($fp);??? ?</li>
	<li>?>??</li>

5,proc_open函数

	<li><?php??? ?</li>
	<li>$test?=?"ls?/tmp/test";??? ?</li>
	<li>$arrayarray?=???array(??? ?</li>
	<li>?array("pipe","r"),???//标准输入??? ?</li>
	<li>?array("pipe","w"),???//标准输出内容??? ?</li>
	<li>?array("pipe","w")????//标准输出错误??? ?</li>
	<li>?);??? ?</li>
	<li>?? ?</li>
	<li>$fp?=?proc_open($test,$array,$pipes);???//打开一个进程通道??? ?</li>
	<li>echo?stream_get_contents($pipes[1]);????//为什么是$pipes[1],因为1是输出内容??? ?</li>
	<li>proc_close($fp);??? ?</li>
	<li>?>??</li>

6,shell_exec函数

	<li><?php??? ?</li>
	<li>$test?=?"ls?/tmp/test";??? ?</li>
	<li>$out?=?shell_exec($test);??? ?</li>
	<li>echo?$out;??? ?</li>
	<li>?>?</li>