是否有压缩实用程序只压缩同一个文件而不创建新文件?

时间:2010-01-02 07:47:14

标签: php

我正在使用gzip和PHP压缩一些日志文件。我的开发机器是windows,而众所周知,路径有时会被一个空格隔开,因为我必须用引号将所有内容包装起来才能到达日志。

我想保持我的代码尽可能干净,并且想知道是否有一个压缩实用程序会将相同的文件压缩并压缩该文件而不是创建一个新的压缩文件。这样,我就不必再运行单独的命令来删除未压缩的文件了。


为了澄清,我没有使用shell_exec来压缩这些,而是​​使用PHP内部函数。 “gzwrite”等。

3 个答案:

答案 0 :(得分:1)

如果日志文件不大于您可以在整个日志文件中读取的已分配的php内存,则使用gzcompress / gzencode压缩内存中的文件,然后将数据写回文件。然后,您可能需要重命名该文件以将.gz附加到末尾。希望这会有所帮助。

答案 1 :(得分:0)

如果是windows,为什么不为你创建一个小实用工具呢?它可能只是两行...执行gzip然后将文件重命名为原始文件。

BTW - 创建original_file.gz后,默认情况下不会gzip删除原文吗?

答案 2 :(得分:0)

压缩该文件 99,99999%的时间就是这样:

  1. that file读取数据,压缩并写入that file.zip
  2. 删除that file
  3. 这就是winzip所做的。这就是gzip的作用。你为什么要不同?保存一行代码?

    我希望您意识到,在压缩成功之前覆盖文件的任何位置都是完全错误的。