PHP函数封装之文件压缩

  • A+
所属分类:PHP

单文件压缩

  1. //文件压缩解压缩
  2. function zip_file($filename){
  3.     //判断是否为文件
  4.     if (!is_file($filename)){
  5.         return false;
  6.     }
  7.     //将文件传给压缩文件,并赋值给zip
  8.     $zip = new ZipArchive();
  9.     //拼接文件名
  10.     $zipName = basename($filename).'.zip';
  11.     //打开压缩包,不存在则创建,存在则覆盖
  12.     if ($zip -> open($zipName,ZipArchive::CREATE|ZipArchive::OVERWRITE)){
  13.     //将文件添加到压缩包
  14.     $zip->addFile($filename);
  15.     $zip ->close();
  16.     return true;
  17.     }else{
  18.         return false;
  19.     }
  20. }

 

多文件压缩

 

  1. //多文件打包
  2. function zip_files($zipName,...$files){
  3.     //检测压缩包名称是否正确,获取扩展名
  4.     $zipExtstrtolower(pathinfo($zipName,PATHINFO_EXTENSION));
  5.     //扩展名是否为zip
  6.     if (!$zipName =='zip'){
  7.         return false;
  8.     }
  9.     $zip = new ZipArchive();
  10.     if ($zip->open($zipName,ZipArchive::CREATE|ZipArchive::OVERWRITE)){
  11.         //循环传入进来的多个值
  12.         foreach ($files as $file){
  13.             //判断是否为文件
  14.             if (is_file($file)){
  15.                 $zip->addFile($file);
  16.             }
  17.         }
  18.         $zip->close();
  19.         return true;
  20.     }
  21.     else{
  22.         return false;
  23.     }
  24. }
  25. zip_files('z.zip','4.php','file_function.php','test_read.txt');

注:...为可变参数的函数,即为不知道要多少个参数,所以用...来表示,最后的值为数组类型,然后通过foreach来获得每一个值。

更多阅读:

函数的参数: http://php.net/manual/zh/functions.arguments.php#functions.variable-arg-list

ZipArchive预定义变量:http://php.net/manual/zh/zip.constants.php

zip函数:http://php.net/manual/zh/ref.zip.php

 

李金龙

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: