PHP解压zip和rar文件的方法介绍?实例代码举例php语言如何解压文件。php开发经常会遇到解压zip和rar文件,以下方法供大家参考,判断文件是zip类型的还是rar类型,调用相关组件执行解压缩。
代码如下:
<?php 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装好后这个错误就自动消失了。