繁体   English   中英

PHP 压缩/压缩带有百分比进度条的文件 - 有可能吗?

[英]PHP compress/zip files with percentage progress bar - is it possible?

尝试使用 ZipArchive class 压缩一堆文件。 一切正常,但我希望在用户等待压缩完成时有某种带有百分比压缩的状态栏。

ZipArchive 甚至可以做到这一点吗? 我可以使用其他任何 zib 库来完成此操作吗?

谢谢!

将文件添加到 zip 通常很快。 如果您要压缩大量文件,通常最慢的过程是$zip->close() PHP zipArchive 类中有一个新方法: https ://www.php.net/manual/en/ziparchive.registerprogresscallback.php

这将允许您监控 zip 关闭的进度。

$zip = new ZipArchive();
if ($zip->open('php.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE)) {
$zip->addFile(PHP_BINARY, 'php');
$zip->registerProgressCallback(0.05, function ($r) {
    printf("%d%%\n", $r * 100);
});
$zip->close();

}

这似乎在 PHP 8.0 中可用。 我用 PHP 7.4+ 对此进行了测试,但目前尚不可用。

请注意谁来到这里希望找到一种方法来监控 extractTo 的进度:遗憾的是,这对 extractTo 不起作用,因为此方法不会在关闭时执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM