PHP执行shell zip压缩命令

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

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

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

阅读 4.6k
2 个回答

简单的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

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

可以写个定时任务

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题