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

 

  

posted @ 2013-03-01 12:29  洒洒  阅读(4464)  评论(0编辑  收藏  举报