H5W3
当前位置:H5W3 > 其他技术问题 > 正文

PHP执行shell zip压缩命令

1.现在有一需求,将上传的文件在函数中执行shell命令生成加密的zip压缩文件,没有做过类似的操作,网上只有一些简单的php执行shell命令,没有解决问题

上传后的文件存放在/Uploads/zip/路径下,例:’./Uploads/zip/a.txt’
如何在控制器中执行方法来生成带加密的zip文件 ‘./Uploads/zip/a.zip’

现在只有一些简单的如system等简单shell命令,求大神指导一下。

回答:

简单的PHP压缩方法,没有实现对文件夹的压缩

<?php

function zipFile($filePath){
    $zipFileName = date('Y-m-d') . '.zip';
    $zipObj      = new ZipArchive();
    $zipObj->open($zipFileName, ZipArchive::CREATE);
    if(is_array($filePath)){
        foreach($filePath as $file){
            $zipObj->addFile($file, basename($file));
        }
    }else{
        $zipObj->addFile($filePath, basename($filePath));
    }
    $zipObj->close();
    return $zipFileName;
}

var_dump(zipFile('./20180208.log'));
var_dump(zipFile([
    './20180207.txt',
    './20180208.txt',
]));

如使用curl来进行调用你控制器,如每天定时备份日志

  1. crontab -e
  2. 0 1 * * * curl http://xxx.com/bak_log每天凌晨1点备份
  3. :wq

其实也用不到使用控制器,直接使用linux调用php脚本就好了,如0 1 * * * /usr/local/php/bin/php /var/www/php/bin/bak_log.php

如有错误,请指正,谢谢!

回答:

可以写个定时任务

本文地址:H5W3 » PHP执行shell zip压缩命令

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址