【问题标题】:When using system to zip a directory lots of output is shown使用系统压缩目录时,会显示大量输出
【发布时间】:2023-03-20 20:45:01
【问题描述】:

我正在尝试编写一个脚本,允许照片上传系统的管理员一次下载他们所有的照片。 目前我正在使用

system('zip -r '.$_SERVER['DOCUMENT_ROOT'].'/zip.zip '.$_SERVER['DOCUMENT_ROOT'].'/images/photo-uploads';

压缩文件,但这似乎将所有文件的名称和位置回显到页面上。 有没有办法解决这个问题?如果不是在服务器上压缩文件的最佳方式是什么。

【问题讨论】:

    标签: php directory zip dreamhost


    【解决方案1】:

    您可以改用exec('zip -r '.$_SERVER['DOCUMENT_ROOT'].'/zip.zip '.$_SERVER['DOCUMENT_ROOT'].'/images/photo-uploads');

    【讨论】:

    • 这样也可以查看系统调用的结果。
    【解决方案2】:

    您可以使用ZipArchive 扩展名来代替(如果您允许的话)调用系统压缩包,因为它使您的代码不可移植。

    【讨论】:

    • 如果可能的话,使用 ZipArchive 是最好的解决方案,IMO。
    【解决方案3】:

    你也可以使用输出缓冲:

    ob_start();
    system('zip -r '.$_SERVER['DOCUMENT_ROOT'].'/zip.zip '.$_SERVER['DOCUMENT_ROOT'].'/images/photo-uploads';
    ob_end_clean();
    

    这将阻止系统命令显示任何输出。

    【讨论】:

    • 如果您需要以某种方式使用系统调用的输出,这很好,但在这种情况下,听起来他想压制它。
    猜你喜欢
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多