使用 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 存档关联的卷

C ++跨平台归档操作/显示

在 Java 中提取存档文件 [关闭]

将文件添加到存档时不要修改文件的编辑日期

如何使用 perl Archive::Zip 将文件添加到存档中?

将文件添加到 ZIP 存档的子文件夹?