clue / tar-react
使用ReactPHP提取tar文件的流式解析器。
Requires
- php: >=5.3
- react/stream: ^1.0 || ^0.7
Requires (Dev)
- clue/hexdump: ~0.2.0
- phpunit/phpunit: ^7.0 || ^6.0 || ^5.0 || ^4.8.35
- react/event-loop: ^1.0 || ^0.5 || ^0.4 || ^0.3
This package is auto-updated.
Last update: 2024-09-04 08:50:10 UTC
README
使用ReactPHP(ReactPHP)提取tar文件的流式解析器。
TAR文件格式是一种常见的归档格式,用于将多个文件存储在一个单独的归档文件中(通常称为“tarball”,扩展名为.tar
)。这个轻量级库提供了一个高效的流式提取tarball的实现,一次处理内存中的一个块,无需依赖磁盘I/O。
目录
注意:此项目处于beta阶段!请随时报告您遇到的问题。
快速入门示例
安装后,您可以使用以下代码将可读的tar流管道传输到TarDecoder
,它为每个单独的文件发出“entry”事件
<?php require __DIR__ . '/vendor/autoload.php'; $stream = new React\Stream\ReadableResourceStream(fopen('archive.tar', 'r')); $decoder = new Clue\React\Tar\TarDecoder(); $decoder->on('entry', function (array $header, React\Stream\ReadableStreamInterface $file) { echo 'File ' . $header['filename']; echo ' (' . $header['size'] . ' bytes):' . PHP_EOL; $file->on('data', function ($chunk) { echo $chunk; }); }); $stream->pipe($decoder);
请参阅示例。
安装
建议通过Composer安装此库。您是Composer的新手吗?
在beta阶段,此项目目前不遵循SemVer。这将安装最新支持的版本
composer require clue/tar-react:^0.2
请参阅变更日志以获取有关版本升级的详细信息。
此项目旨在在任何平台上运行,因此不需要任何PHP扩展,并支持在旧版PHP 5.3到当前PHP 8+上运行。强烈建议使用此项目的最新支持的PHP版本。
测试
要运行测试套件,您首先需要克隆此存储库,然后通过Composer安装所有依赖项
composer install
要运行测试套件,请转到项目根目录并运行
vendor/bin/phpunit
许可证
此项目根据宽松的MIT许可证发布。
你知道吗?我提供定制开发服务,并为发行版赞助和贡献发出发票。有关详情请联系我(@clue)。
更多信息
-
如果您想了解更多关于处理数据流的信息,请参阅底层react/stream组件的文档。
-
如果您想处理压缩的tarball(
.tar.gz
和.tgz
文件扩展名),您可能需要在将解压缩流传递到tar解码器之前在压缩输入流上使用clue/reactphp-zlib。