【问题标题】:Dynamically Generate Tarball and send through PHP?动态生成压缩包并通过 PHP 发送?
【发布时间】:2012-12-26 03:42:27
【问题描述】:

我有一个我制作的目录列表脚本,我想知道我需要进入哪个方向才能为要下载为 tarball 的特定目录选择一个选项。 cronjob 是不可接受的,因为我希望这是按需的,因此 CPU 周期不会浪费在不需要的内容上,但我也希望缓存已请求的内容。排除缓存的理想解决方案是将 tar 命令输出到标准输出,但我如何通过 PHP 发送它而无需等待命令完成?这方面的一些指导会有所帮助。

【问题讨论】:

  • 目录内容多久更改一次?如果我不经常使用 cronjob 打包 tarball,请每天说。您还可以跟踪目录何时更改,然后在更改时将其压缩。
  • 这对于我所在的托管情况并不理想。
  • 不考虑缓存,最简单的方法是passthru("tar -cz dir/");
  • 提供的信息不适合回答;)
  • @mario 将其作为答案提交。这将完美地工作。

标签: php download directory stdout tar


【解决方案1】:

要在不等待的情况下发送它,您可以在使用“ob_implicit_flush()”时执行 gz 命令,不确定该命令是否会在仍在运行时读取,但您可以在后台运行它并在输出到文件时读取它或某物。您还可以检查目录/文件上的日期,然后运行 ​​gzip 脚本

【讨论】:

  • 我不相信这会起作用,因为 shell_exec 的返回会阻止它刷新。
  • 如果您以非阻塞方式运行并不断读取文件,则不会,请参阅此处stackoverflow.com/questions/222414/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多