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" }