芝麻web文件管理V1.00
编辑当前文件:/www/wwwroot/shphe-en.com/wp-content/plugins/t9_eshopimport/inc/zip.class.php
open($save, ZipArchive :: OVERWRITE) === true) { self :: addZip($path, $zip); $zip -> close(); } } /** * ļļеzip * * @param string $path * @param ZipArchive $zip */ private static function addZip($path, $zip) { $handler = opendir($path); while (($file = readdir($handler)) !== false) { if ($file != '.' && $file != '..') { if (is_dir($path . DIRECTORY_SEPARATOR . $file)) { self :: addZip($path . DIRECTORY_SEPARATOR . $file, $zip); } else { $zip -> addFile($path . DIRECTORY_SEPARATOR . $file); } } } closedir($handler); } /** * ѹļ * * @param string $file ѹļ· * @param string $path ѹ·ΪļΪ· */ public static function extra($file, $path = null) { if (!isset($path)) { $array = explode('.', $file); $path = reset($array); } $zip = new ZipArchive(); if ($zip -> open($file) === true) { $zip -> extractTo($path); $zip -> close(); } } private static function folderToZip($folder, &$zipFile, $exclusiveLength) { $handle = opendir($folder); while (false !== $f = readdir($handle)) { if ($f != '.' && $f != '..') { $filePath = "$folder/$f"; // Remove prefix from file path before add to zip. $localPath = substr($filePath, $exclusiveLength); if (is_file($filePath)) { $zipFile -> addFile($filePath, $localPath); } elseif (is_dir($filePath)) { $zipFile -> addEmptyDir($localPath); self :: folderToZip($filePath, $zipFile, $exclusiveLength); } } } closedir($handle); } public static function zipDir($sourcePath, $outZipPath) { $pathInfo = pathInfo($sourcePath); $parentPath = $pathInfo['dirname']; $dirName = $pathInfo['basename']; $sourcePath = $parentPath . '/' . $dirName; //ֹ'folder' ļвbug $z = new ZipArchive(); $z -> open($outZipPath, ZIPARCHIVE :: CREATE); //zipļ $z -> addEmptyDir($dirName); //ļ self :: folderToZip($sourcePath, $z, strlen("$parentPath/")); $z -> close(); } }