php 批量压缩png,php – 批量压缩(Zip)文件

在我的本地系统上,PHP的内置zip库能够在大约800ms内将10个24MB的压缩文件合并到21个51MB的zip文件中,这与您报告的200ms /文件相当,但我不确定您的文件有多大或者你正在使用什么类型的硬件.

与指南的作者最初使用的Java库不同,PHP的zip库是用C实现的,因此您不会看到作者看到的相同的Java到C性能增益.话虽如此,我不知道Chillkat的QuickAppend是如何工作的,或者它与PHP的zip库相比如何,但是对于预先压缩的文件,无论你使用PHP还是Chillkat,它似乎都是最快的解决方案.

$destination = new ZipArchive;

$source = new ZipArchive;

if($source->open('a.zip') === TRUE

&& $destination->open('b.zip') === TRUE) {

$time_start = microtime(true);

$temp_dir = "/tmp/zip_" . time();

mkdir($temp_dir,0777,true);

$source->extractTo($temp_dir);

$source->close();

$files = scandir($temp_dir);

$file_count = 0;

foreach($files as $file) {

if($file == '.' || $file == '..')

continue;

$destination->addFile("$temp_dir/$file");

++$file_count;

}

$destination->close();

exec("rm -rf $temp_dir &");

$time_end = microtime(true);

$time = $time_end - $time_start;

print "Added $file_count files in " . ($time * 1000). "ms \n";

}

产量

-rw-rw-r-- 1 fuzzytree fuzzytree 24020997 Jun 4 15:57 a.zip

-rw-rw-r-- 1 fuzzytree fuzzytree 51418980 Jun 4 15:57 b.zip

fuzzytree@atlas:~/testzip$php zip.php

Added 10 files in 872.43795394897ms

fuzzytree@atlas:~/testzip$ls -ltr *zip

-rw-rw-r-- 1 fuzzytree fuzzytree 24020997 Jun 4 15:57 a.zip

-rw-rw-r-- 1 fuzzytree fuzzytree 75443030 Jun 4 15:57 b.zip

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值