<p>
先下载php_rar.dll文件并让php加载
</p>
<p>
<?php<br /> $rar_file=rar_open(“f:/js/test/z.rar”) or die(“失败”);<br /> $entries=rar_list($rar_file);<br /> foreach($entries as $entry){<br /> $entry->extract(‘f:/js/test’);<br /> }<br /> rar_close($rar_file);<br /> ?>
</p>
<p>
然后创建加密码的rar文件z.rar(加密码时不勾选加密文件名)
</p>
<p>
<?php<br /> $rar_file=rar_open(“f:/js/test/z.rar”,”123456″) or die(“失败”);//打开时增加第二个参数,RAR文件的密码<br /> $entries=rar_list($rar_file);<br /> foreach($entries as $entry){<br /> $entry->extract(‘f:/js/test’);<br /> }<br /> rar_close($rar_file);<br /> ?>
</p>
<p>
创建加密码的rar文件z.rar(加密码时勾选加密文件名)用以上代码解压缩失败
</p>
<p>
这种方法不好的地方是:解压完后原来的rar文件不能删除(PHP还在使用该文件)
</p>
<p>
参考资料
</p>
<p>
http://pecl.php.net/package/rar
</p>
<p>
http://cn2.php.net/manual/en/book.rar.php
</p>
<p>
方法二:调用COM组件
</p>
<p>
<?PHP<br /> class rar<br /> {
</p>
<p>
public $Path; //文件路径
</p>
<p>
public $Save; //保存路径
</p>
<p>
public $Object; //Wscript.Shell对象实例
</p>
<p>
function rar(){ //构造函数
</p>
<p>
$this->Object = new com(“Wscript.Shell”); //实例化一个Shell对象
</p>
<p>
}
</p>
<p>
function Release(){ //解压方法
</p>
<p>
$this->Object->run(“WinRAR x $this->Path $this->Save”,1,false); //Path要解压的文件名及路径 Save保存路径
</p>
<p>
if($this->Object == true){
</p>
<p>
return true;
</p>
<p>
}else{
</p>
<p>
return false;
</p>
<p>
}
</p>
<p>
}
</p>
<p>
function Pressure(){ //压缩方法
</p>
<p>
$this->Object->run(“WinRAR a $this->Save $this->Path”,1,false); //Save压缩后保存的路径及文件名 Path要压缩的路径
</p>
<p>
if($this->Object == true){
</p>
<p>
return true;
</p>
<p>
}else{
</p>
<p>
return false;
</p>
<p>
}
</p>
<p>
}<br /> }
</p>
<p>
$rar=new rar();<br /> $rar->Path=”F:/js/test/z.rar”;<br /> $rar->Save=”F:/js/test”;<br /> if($rar->Release()){<br /> die(‘解压成功’);<br /> }else{<br /> die(‘解压失败’);<br /> }<br /> ?>
</p>
</div>
</td>