PHP解压zip和rar文件的方法介绍?实例代码举例php语言如何解压文件。php开发经常会遇到解压zip和rar文件,以下方法供大家参考,判断文件是zip类型的还是rar类型,调用相关组件执行解压缩。
代码如下:
function unzip_unrar($path, $destination){
$fileinfo = pathinfo($path);
//获取文件后缀名
$ext = strtolower($fileinfo["extension"]);
//解压zip文件
if ($ext == 'zip') {
$zip = new ZipArchive() ;
if ($zip->open($path) !== TRUE) {
die ('不能打开压缩文件');
}
$zip->extractTo($destination);
$zip->close();
echo '压缩文件已经成功解压';
//解压rar文件
} elseif ($ext == 'rar') {
//使用PHP预定义的Com组件加载Shell,加载wscript.shell用来执行dos命令的组件
$obj=new com("wscript.shell");
//执行解压命令
$obj->run("winrar x $path $destination",1,true);
echo '压缩文件已经成功解压';
} else {
die('不是zip或rar压缩文件');
}
}
//被压缩文件地址
$path = 'D:/workspace/jokesir/pj.zip';
//解压后文件存放地址
$destination = 'D:/workspace/jokesir';
//调用解压函数
unzip_unrar($path, $destination);
?>
测试过程中出现了一个错误:
Fatal error: Uncaught exception ‘com_exception’ with message ‘Source: Unknown
Description: Unknown’ in D:\workspace\jokesir\unrar.php:5 Stack trace: #0 D:\workspace\jokesir\unrar.php(5): com->run(‘winrar x D:/wor…’, 1, true) #1 {main} thrown in D:\workspace\jokesir\unrar.php on line 5
这是因为我的电脑上装的是360解压软件而没装winrar,将winrar装好后这个错误就自动消失了。