2012-04-18 87 views
1

我必须使用php创建一个zip文件。这些文件位于我的Web服务器的一个目录中。 我必须添加这些文件(动态)并创建一个zip文件。在php中创建ZIP文件,windows

使用小文件在php中完美工作,但是当我试图使用大于200 MB的文件进行压缩时,我将花更多时间来创建压缩文件。

那么有什么办法可以使用Windows系统命令,它可以通过PHP运行一个zip文件?这样我们就可以轻松快速地创建zip文件而不会丢失内存。

请帮

+5

如果你需要添加20个文件,每个文件2GB,会发生什么?仅仅因为你改变了创建一个zip文件的方法,它不会被创建得更快(或者至少显着更快)。如果你有大文件需要压缩,那么你只需要获得性能提升 - 没有两种方法。 – 2012-04-18 08:31:09

回答

1

你可以尝试实行某种形式的队列,也许在你的数据库。您排队执行zip操作,而在后台执行某种类型的cron作业时会执行压缩操作,并在队列完成时通知您的队列。

这不会减少处理时间,但由于压缩是一个CPU和I/O繁重的操作,它可能无法加速太多。使用这种技术,您不必让用户等到压缩完成后,您可以例如在完成后发送电子邮件(链接到创建的zip文件)。

+0

感谢您的回复,你能帮我一下如何使用PHP中的动态文件进行压缩? – ramesh 2012-04-18 08:57:07

+1

@ramesh没有'动态文件'这样的东西,所以我不知道你的意思。使用[ZipArchive](http://www.php.net/manual/en/class.ziparchive.php),您可以将磁盘中的文件和内存中的数据添加到zip存档中。 – CodeCaster 2012-04-18 09:21:03

+0

okey ..我的意思实际上。 ..但是如何从像cron这样的操作创建一个zip文件?我的意思是在后台运行? – ramesh 2012-04-18 09:51:20