<?php // 压缩单个文件 function zip_file($filename) { if(!is_file($filename)) { return false; } $zip = new ZipArchive(); $zipName = basename($filename).'.zip'; // 打开指定压缩包,不存在则创建,存在则覆盖 if($zip->open($zipName, ZipArchive::CREATE|ZipArchive::OVERWRITE)) { // 将文件添加到压缩包中 if($zip->addFile($filename)) { $zip->close(); // unlink 删除文件 //@unlink($filename); return true; } else { return false; } } else { return false; } } // 压缩多个文件 function zip_files($zipName, &$files) { // 检测压缩包名称是否正确 $zipExt = strtolower(pathinfo($zipName, PATHINFO_EXTENSION)); if('zip' !== $zipExt) { 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; } } // 解压缩 function unzip_file($zipName, $dest) { //检测要解压压缩包是否存在 if (!is_file($zipName)) { return false; } //检测目标路径是否存在 if (!is_dir($dest)) { mkdir($dest, 0777, true); } $zip = new ZipArchive(); if ($zip->open($zipName)) { $zip->extractTo($dest); $zip->close(); return true; } else { return false; } } // 压缩单个文件 zip_file("1.php"); // 压缩多个文件 $files = array("1.php", "2.php"); foreach ($files as $file) { echo $file . "<br>"; } zip_files("1.zip", $files); // 解压缩 unzip_file("2.zip", "."); ?>