如下几种命令执行函数:
目录
system
system函数简介:用于执行命令
语法形式:
system(string $command,int $return_var=?)
command:必选参数,字符类型,被system函数执行的命令,如ls
return_var:可选参数,整数类型,如果提供此参数,则command命令执行之后的返回状态会被放置到return_var函数内。返回0表示执行成功,返回1表示执行失败。
示例:
<?php
highlight_file(_FILE_);
$cmd=$_GET["benben"];
if(isset($cmd)){
system($cmd);
}
?>
system函数默认有回显。
exc
exc(string $command,array $output=?,int $return_var=?)
command:必选参数,被执行的命令
output:可选参数,如果选择 ,就会将执行结果以数组的形式填充到这个变量中
return_var:可选变量,如果选择,就会将命令是否执行成功的结果填入此变量,成功为0,失败为1
如果没有设置output变量,则会回显结果的最后一行,即当作数组处理后的最后一个数组元素。
<?
hightlight_file(_FILE_));
$cmd=$_GET['cmd'];
exc($cmd,$array);
print_r($array);
?>
passthru
passthru(string $command,int &$return_var=?)
command:必选参数,被执行的命令
return_var:可选参数,整数类型,&表示可以通过引用的方式来在函数执行结束之后修改这个值,如果提供此参数,则command命令执行之后的返回状态会被放置到return_var函数内。返回0表示执行成功,返回1表示执行失败。
类似于system
<?
highlight_file(_FILE_);
$cmd=$_GET['cmd'];
echo "This is test!!!"
passthru($cmd);
?>
shell_exec
shell_exec(string $cmd)
cmd:需要执行的命令
shell_exec会将命令执行的输出返回成一个字符串,这里注意,不是回显,返回跟回显是不一样的,返回意味着将整个函数会被当作一个字符串,而想要使用它则必须直接显示,如
echo shell_exec('ls');
或者用变量承接它,从而在后续继续使用,如
$output = shell_exec('ls -l');
echo "<pre>$output</pre>"; #此处的<pre>意思是将输出内容以原始形式显示,不会去除空格,换行等
这种方式能够让我们在后续代码中更加方便的调用之前的结果。
反引号``
与shell_exec一模一样
举例
$output = `ls -l`;
echo "<pre>$output</pre>";
和
$output = shell_exec('ls -l');
echo "<pre>$output</pre>";
是等价的。
popen
其操作跟文件操作类似,此函数会执行命令并且返回一个文件指针(实际上文件并不存在)。如下
resource popen ( string $command , string $mode )
command:要执行的shell命令,如ls
mode:打开文件的模式,可以是'r'(读取模式),也可以是'w'(写入模式)
返回值:
如果执行成功,则返回一个文件指针resource,用于后续操作。
如果失败,则返回false。
示例用法
$handle = popen('ls -l', 'r');
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle);
echo $buffer;
}
pclose($handle);
}
标签:执行,shell,return,函数,system,命令,command,output,php
From: https://blog.csdn.net/Lhy1963245411/article/details/140526730