php执行shell命令,system、exec、passthru

一、命令



有三个命令:system、exec、passthru(每个命令的参数自行查阅手册)



二、区别



system:执行命令,【将】命令执行结果输出到屏幕,并以string类型返回命令输出的最后一行。



exec:执行命令,【不将】命令执行结果输出到屏幕,以string类型返回命令输出的最后一行。



passthru:执行命令,【将】命令执行结果输出到屏幕,不会返回任何内容(打印出passthru的输出可以发现是个NULL、啥都没)。



返回所有值
$return_string = exec($shell, $output, $return_var);//明细模式



<?php
function is_running($pid)
{
$cmd = “ps aux | head”;



$ret1 = system($cmd);
var_dump($ret1);
echo "\n";

$ret2 = exec($cmd);
var_dump($ret2);
echo "\n";

$ret3 = passthru($cmd);
var_dump($ret3);
echo "\n"; } is_running(26594); ?>


$sCheckNetworkMessage = ‘’;
$shell = ‘/bin/ping -c4 www.baidu.com’;
$sCheckNetworkMessage .= date(‘Y-m-d H:i:s’).” Check network for baidu host[{$shell}]: \r\n”;
// $sCheckNetworkMessage .= trim(shell_exec($shell)).”\r\n”;//简略模式
$return_msg = $return_var = ‘’;
$output = [];
$return_string = exec($shell, $output, $return_var);//明细模式
$sCheckNetworkMessage .= “return_string: {$return_string}, return_var: {$return_var}.”.”\r\n”;
for($i=0;$i<count($output);$i++){
$sCheckNetworkMessage .= $output[$i].”\r\n”;
}



Category php