zip是一个用于在服务器上完全不写入磁盘的情况下动态流式传输动态zip文件的PHP库。

1.0 2023-10-16 05:48 UTC

This package is not auto-updated.

Last update: 2024-10-01 09:01:04 UTC


README

PclZip定义了一个PclZip类别,其类实例可以视为一个ZIP档案,并提供了方法来进行处理。

概述

一个快速的简单的PHP流式下载zip文件的工具。使用这个库可以避免将Zip文件写入磁盘。您可以直接将其发送给用户,这要快得多。它可以与S3存储桶或任何PSR7流一起工作。

安装

如果您使用Composer管理项目的依赖项,只需在项目的composer.json文件中添加对laoqianjunzi/zip的依赖即可。使用以下命令将包添加到项目的依赖项中:

composer require laoqianjunzi/zip

使用方法和选项

这里有一个简单的示例

// Autoload the dependencies
require 'vendor/autoload.php';

// enable output of HTTP headers
$options = new zip\Option\Archive();
$options->setSendHttpHeaders(true);

// create a new zip object
$zip = new zip\zip('example.zip', $options);

// create a file named 'hello.txt'
$zip->addFile('hello.txt', 'This is the contents of hello.txt');

// add a file named 'some_image.jpg' from a local file 'path/to/image.jpg'
$zip->addFileFromPath('some_image.jpg', 'path/to/image.jpg');

// add a file named 'goodbye.txt' from an open stream resource
$fp = tmpfile();
fwrite($fp, 'The quick brown fox jumped over the lazy dog.');
rewind($fp);
$zip->addFileFromStream('goodbye.txt', $fp);
fclose($fp);

// finish the zip stream
$zip->finish();

您还可以添加注释、修改文件时间戳,并自定义(或禁用)HTTP头。在添加文件时也可以指定存储方法,当前默认的存储方法是'deflate',即文件以压缩模式0x08存储。