PHP中三个调用系统命令的函数system(), exec(), passthru() 比较:
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果
passthru() 只调用命令,把运行结果原样地输出
new com() 系统预定义com类,根据需要任意选择内置方法
相同点:都可以获得命令执行的状态码
使用PHP 预定义的Com组件加载Shell
$obj=new com("wscript.shell");//加载wscript.shell用来执行dos命令的组件
$obj->run(“所要执行的命令内容”);//所要执行的命令和返回参数
//Rar解压命令: winrar x 被解压文件 加压的位置补充知识
获取当前绝对路径: getcwd() 上传移动文件函数: move_uploaded_file()
<?php
$dir=getcwd();//获取当前绝对路径
if($_POST[sub]){
$tname=$_FILES[upfiles][tmp_name];
$nname=$_FILES[upfiles][name];
move_uploaded_file($tname,$nname);
$obj=new com("wscript.shell");//加载wscript.shell用来执行dos命令的组件
$obj->run("winrar x $dir\\".$nname." ".$dir , 1,true);//所要执行的命令和返回参数
unlink($nname);
}
?>
<form action="" method="POST" enctype="multipart/form-data">
选择上传文件 <input type="file" name="upfiles"/>
<input type="submit" name='sub' value='提交并解压' >
</form>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号