用PHP来执行系统命令
php的内置函数exec、system都可以调用系统命令(dos和shell命令),passthru和escapeshellcmd也可以。
使用这两个函数就需要在php.ini中将安全模式关闭,否则为了安全期间,php是不让调用系统命令的。
exec --- 执行外部程式
语法:string exec (string command [,array &output [,int &return_var]])
参数:1.command:系统命令;
2.output:数组,被命令输出的每一行填满;
3.return_var:状态,成功返回0,失败返回1.
system --- 执行外部程式并且显示输出
语法:string system (string command [,int &return_var])
不同点:
exec可以把执行的结果全部返回到$output数组里,$return_var是执行状态,0为成功,1为失败;
system不需要提供$output函数,它可以直接把结果返回来并且打印出来,同意$return_var是执行的状态码,0为成功,1为失败。
示例:
<?php exec("ping www.baidu.com -n 1",$output,$status); var_dump($output); var_dump($status); ?>
数组$output打印的结果:
array(9) { [0]=> string(0) "" [1]=> string(65) "Pinging www.a.shifen.com [220.181.111.147] with 32 bytes of data:" [2]=> string(0) "" [3]=> string(52) "Reply from 220.181.111.147: bytes=32 time=9ms TTL=51" [4]=> string(0) "" [5]=> string(36) "Ping statistics for 220.181.111.147:" [6]=> string(56) " Packets: Sent = 1, Received = 1, Lost = 0 (0% loss)," [7]=> string(46) "Approximate round trip times in milli-seconds:" [8]=> string(47) " Minimum = 9ms, Maximum = 9ms, Average = 9ms" }