- A+
所属分类:PHP
单文件压缩
- //文件压缩解压缩
- function zip_file($filename){
- //判断是否为文件
- if (!is_file($filename)){
- return false;
- }
- //将文件传给压缩文件,并赋值给zip
- $zip = new ZipArchive();
- //拼接文件名
- $zipName = basename($filename).'.zip';
- //打开压缩包,不存在则创建,存在则覆盖
- if ($zip -> open($zipName,ZipArchive::CREATE|ZipArchive::OVERWRITE)){
- //将文件添加到压缩包
- $zip->addFile($filename);
- $zip ->close();
- return true;
- }else{
- return false;
- }
- }
多文件压缩
- //多文件打包
- function zip_files($zipName,...$files){
- //检测压缩包名称是否正确,获取扩展名
- $zipExt= strtolower(pathinfo($zipName,PATHINFO_EXTENSION));
- //扩展名是否为zip
- if (!$zipName =='zip'){
- return false;
- }
- $zip = new ZipArchive();
- if ($zip->open($zipName,ZipArchive::CREATE|ZipArchive::OVERWRITE)){
- //循环传入进来的多个值
- foreach ($files as $file){
- //判断是否为文件
- if (is_file($file)){
- $zip->addFile($file);
- }
- }
- $zip->close();
- return true;
- }
- else{
- return false;
- }
- }
- 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