PHP解压zip和rar文件的方法介绍



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装好后这个错误就自动消失了。