使用 php 将文件添加到 rar 存档
Posted
技术标签:
【中文标题】使用 php 将文件添加到 rar 存档【英文标题】:add files to rar archive using php 【发布时间】:2014-06-12 22:11:07 【问题描述】:是否可以使用 php 将文件添加到 RAR 存档?在做了一些研究之后,我相信由于许可问题,您只能解压缩 rar 文件。 我只是问,因为安装 zip 模块是不可能的,因为我维护的服务器上有 50 多个帐户,更新 PHP 会导致很多帐户中断。
【问题讨论】:
【参考方案1】:不,不可以通过普通的标准 PHP 将文件添加到 RAR 存档。您只能提取它们。无论如何,有一个 RAR 程序,这是将文件添加到 RAR 存档的唯一允许方法。您可以使用 PHP exec()
访问此 RAR 程序。它甚至可以使用密码存档。
在这里查看:
http://www.phpclasses.org/package/3556-PHP-Pack-files-in-compressed-RAR-archives.html
【讨论】:
【参考方案2】:如果主机上有命令行 RAR 工具,您可以通过exec()
等将它们与 PHP 一起使用。
这是来自http://www.php.net/manual/en/rar.examples.php#100963 的 Windows 主机上的示例
<?php
function RARFiles($Output='output.rar',$Files=array())
$Data='';
for($i=0;$i<count($Files);$i++)
$Data.="\"$Files[$i]\" ";
exec("rar.exe a \"$Output\" $Data");
$Files=array('file1.ext','file2.ext','file3.ext');
RARFiles('asdf.rar',$Files);
// asdf.rar created.
?>
据我所知,由于您所说的许可,不可能在 PHP 中创建 RAR 存档。但是您可以通过http://php.net/manual/en/book.rar.php 使用现有档案在一定程度上。
【讨论】:
我对你提供的代码 sn-p 进行了破解,但我没有这样的运气让它工作。以上是关于使用 php 将文件添加到 rar 存档的主要内容,如果未能解决你的问题,请参考以下文章
使用 SharpCompress 识别与给定 RAR 存档关联的卷