将文件添加到 PHP 中的现有 Zip [关闭]

Posted

技术标签:

【中文标题】将文件添加到 PHP 中的现有 Zip [关闭]【英文标题】:Add Files to Existing Zip in PHP [closed] 【发布时间】:2013-01-03 12:32:52 【问题描述】:

如何通过 php 将文件添加到现有的 zip?我有一个 zip 文件 test.zip 包含五个文件,现在我想在该 zip 中再添加 20 个文件。所以我更新的 zip 将包含 25 个文件。

【问题讨论】:

【参考方案1】:
array_push('sortname','fullpath');                      
$zip = new ZipArchive();
if ($zip->open('/path_to_folder/fileName'.'.zip',ZIPARCHIVE::CREATE) !== TRUE) 
    die ("Could not open archive");

foreach ($fileList as $key=>$value) 
    $zip->addFile($key,$value) or die ("ERROR: Could not add file: $f");

$zip->close();

it will create new zip if it does not exist,otherwise add files to the same zip file

我在我的公共文件夹中创建了一个名为 index.php 的 zip 文件,其中压缩了 index.php 文件。然后我编写了以下代码以编程方式向其中添加 2 个新文件,它对我来说非常有效

$zip = new ZipArchive();
$filename = APPLICATION_PATH."\..\public\index.zip";

if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) 
    exit("cannot open <$filename>\n");

try
    $zip->addFile(APPLICATION_PATH."\..\public\index4.php","index4.php") or die ("ERROR: Could not add file:");
     $zip->addFile(APPLICATION_PATH."\..\public\web.config","web.config") or die ("ERROR: Could not add file:");


catch (Exception $e)
    echo  $e->getMessage();exit;

echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();

【讨论】:

它适用于新的 zip,但不适用于现有的 zip。请在发布答案之前尝试此操作。 我在我的公共文件夹中创建了一个名为 index.php 的 zip 文件,其中压缩了 index.php 文件。然后我编写了以下代码以编程方式向其中添加 2 个新文件,它对我来说非常有用, @biswarup 请重新检查一下,我已经对答案进行了更改

以上是关于将文件添加到 PHP 中的现有 Zip [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中从 AWS S3 中的文件创建 zip 的最佳方法? [关闭]

将zip内容提取到与zip文件同名的目录中,保留目录结构[关闭]

如何将多个文件夹添加到一个 zip 文件中(将文件夹 1、文件夹 2 添加到包含少量文件的 myzip.zip filr)

使用 7zip 命令将目录中的文件归档到单个 zip [关闭]

如何使用Golang将文件添加到现有的zip文件中

Mailchimp 使用 php 和 drupal 8 将标签添加到列表中的现有成员