1. PHP执行linux命令6个函数代码实例
1.1 exec()
exec()函数用于执行一个外部程序。它的基本语法如下:
string exec ( string $command [, array &$output [, int &$return_var ]] )
其中,$command是要执行的命令,$output是一个用于存储命令输出的数组变量,$return_var是一个用于存储命令返回值的整型变量。
下面是一个使用exec()函数的示例:
$output = array();
$return_var = 0;
exec('ls -l', $output, $return_var);
echo "命令输出:";
foreach ($output as $line) {
echo $line;
}
echo "返回值:".$return_var;
执行以上代码,将会执行Linux的ls -l命令,并将命令的输出保存在$output数组变量中,返回值存储在$return_var整型变量中。
1.2 shell_exec()
shell_exec()函数用于执行命令,并返回输出。它的基本语法如下:
string shell_exec ( string $command )
下面是一个使用shell_exec()函数的示例:
$output = shell_exec('ls -l');
echo "命令输出:";
echo $output;
以上代码将会执行Linux的ls -l命令,并将结果输出。
1.3 system()
system()函数用于执行一个外部程序,并显示输出。它的基本语法如下:
string system ( string $command [, int &$return_var ] )
下面是一个使用system()函数的示例:
$return_var = 0;
system('ls -l', $return_var);
echo "返回值:".$return_var;
以上代码将会执行Linux的ls -l命令,并显示输出结果。
1.4 passthru()
passthru()函数用于执行命令,并将结果直接输出。它的基本语法如下:
void passthru ( string $command [, int &$return_var ] )
下面是一个使用passthru()函数的示例:
$return_var = 0;
passthru('ls -l', $return_var);
echo "返回值:".$return_var;
以上代码将会执行Linux的ls -l命令,并直接输出结果。
1.5 popen()
popen()函数用于执行一个外部程序,并返回一个文件指针。它的基本语法如下:
resource popen ( string $command , string $mode )
下面是一个使用popen()函数的示例:
$file = popen('ls -l', 'r');
echo "命令输出:";
while (!feof($file)) {
echo fgets($file);
}
fclose($file);
以上代码将会执行Linux的ls -l命令,并逐行打印输出结果。
1.6 proc_open()
proc_open()函数用于执行一个外部程序,并返回一个进程资源。它的基本语法如下:
resource proc_open ( string $command , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )
下面是一个使用proc_open()函数的示例:
$descriptorspec = array(
0 => array("pipe", "r"), // 标准输入
1 => array("pipe", "w"), // 标准输出
2 => array("pipe", "w") // 标准错误输出
);
$process = proc_open('ls -l', $descriptorspec, $pipes);
echo "命令输出:";
if (is_resource($process)) {
while (!feof($pipes[1])) {
echo fgets($pipes[1]);
}
fclose($pipes[1]);
$return_value = proc_close($process);
}
以上代码将会执行Linux的ls -l命令,并打印输出结果。
以上是6个PHP执行Linux命令的函数的示例代码。这些函数可以方便地与Linux命令进行交互,并获取命令的输出结果和返回值。在实际开发中,我们可以根据具体需求选择合适的函数来执行Linux命令,并处理命令的结果。需要注意的是,执行外部命令要谨慎,应该对用户输入进行验证和过滤,以防止安全风险。