php ZipArchive压缩函数详解实例_PHP教程
用ZipArchive压缩文件,这个是php的扩展类,自php5.2版本以后就已经支持这个扩展,如果你在使用的时候出现错误,查看下php.ini里面的extension=php_zip.dll前面的分号有没有去掉,然后再重启Apache这样才能使用这个类库。
例1、生成zip 压缩文件
/* 生成zip 压缩文件 */
function create_zip($files = array(),$destination = '',$overwrite = false) {
//if the zip file already exists and overwrite is false, return false
if(file_exists($destination) && !$overwrite) { return false; }
//vars
$valid_files = array();
//if files were passed in...
if(is_array($files)) {
//cycle through each file
foreach($files as $file) {
//make sure the file exists
if(file_exists($file)) {
$valid_files[] = $file;
}
}
}
//if we have good files...
if(count($valid_files)) {
//create the archive
$zip = new ZipArchive();
if($zip->open($destination,$overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {
return false;
}
//add the files
foreach($valid_files as $file) {
$file_info_arr= pathinfo($file);
$zip->addFile($file,$file_info_arr['basename']);//去掉层级目录
}
//debug
//echo 'The zip archive contains ',$zip->numFiles,' files with a status of ',$zip->status;
//close the zip -- done!
$zip->close();
//check to make sure the file exists
return file_exists($destination);
}
else
{
return false;
}
}
define('ROOTPATH',dirname ( __FILE__ )); //网站路径
$files_to_zip = array(
ROOTPATH.DIRECTORY_SEPARATOR.'PHP+jQuery+Cookbook.pdf',
ROOTPATH.DIRECTORY_SEPARATOR.'TurboListerZeroTemplate.csv'
);
//if true, good; if false, zip creation failed
$filename='my-archive.zip';
$result = create_zip($files_to_zip,$filename);
例2 、压缩文件夹下面的所有文
/*
php zip压缩文件夹下面的所有文件
*/
class HZip
{
/**
* 添加文件和子目录的文件到zip文件
* @param string $folder
* @param ZipArchive $zipFile
* @param int $exclusiveLength Number of text to be exclusived from the file path.
*/
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);
}
/**
* Zip a folder (include itself).
* Usage:
* HZip::zipDir('/path/to/sourceDir', '/path/to/out.zip');
*
* @param string $sourcePath Path of directory to be zip.
* @param string $outZipPath Path of output zip file.
*/
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();
}
}
//使用方法
HZip::zipDir('yourlife', 'yourlife.zip');
?>
1.ZipArchive::addEmptyDir
添加一个新的文件目录
2.ZipArchive::addFile
将文件添加到指定zip压缩包中。
3.ZipArchive::addFromString
添加的文件同时将内容添加进去
4.ZipArchive::close
关闭ziparchive
5.ZipArchive::extractTo
将压缩包解压
6.ZipArchive::open
打开一个zip压缩包
7.ZipArchive::getStatusString
返回压缩时的状态内容,包括错误信息,压缩信息等等
8.ZipArchive::deleteIndex
删除压缩包中的某一个文件,如:deleteIndex(0)删除第一个文件
9.ZipArchive::deleteName
删除压缩包中的某一个文件名称,同时也将文件删除。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML 파일을 ZIP으로 압축하면 페이지 로딩 속도가 향상될 수 있습니다. 방법은 다음과 같습니다. 온라인 도구(예: FileOptimizer, TinyPNG) 사용 명령줄 도구(예: gzip, 7-zip) 사용 Node.js 스크립트 사용(zlib 모듈 사용)

zip 명령은 Linux 시스템에서 매우 유용한 압축 도구입니다. zip 명령을 사용하면 파일과 디렉터리를 zip 파일로 쉽게 압축하여 저장 공간을 절약하고 전송을 용이하게 할 수 있습니다. zip 명령의 기본 구문은 "zip [옵션] [압축 파일 이름] [압축할 파일 또는 디렉터리]"입니다.

1. 압축 폴더는 zip 파일 [root@cgls]#zip-rmydata.zipmydata2입니다. mydatabak 디렉터리 [root@cgls]#unzipmydata.zip-dmydatabak3.mydata01 폴더에 mydata.zip의 압축을 풀면 mydata02.txt가 압축됩니다. mydata.zip[root@cgls]#zipmydata.zipmydata01mydata02.txt4. mydata.zip 파일을 직접 압축 해제합니다. [root@cgls]#unzipmydata.zip5.

7z와 zip은 모두 무손실 압축입니다. 7z는 압축률이 매우 높은 효율적인 주류 압축 형식입니다. ZIP 파일 형식은 데이터 압축 및 문서 저장을 위한 파일 형식입니다. 7z는 압축률이 더 높고 zip 형식이 더 일반적이며 다양한 기술을 보유하고 있으며 Windows 운영 체제는 기본적으로 zip 형식을 지원합니다.

파일 압축은 디스크 공간과 네트워크 전송 시간을 절약할 수 있는 일반적인 작업이며, Java는 파일 압축을 위한 Zip 기능을 제공합니다. 이 기사에서는 자세한 소개와 예제 데모를 통해 파일 압축을 위해 Java에서 Zip 기능을 사용하는 방법을 보여줍니다. 1. Zip 기능 소개 Zip 기능은 Java에서 제공되는 압축 및 패키징 도구 라이브러리입니다. 이 기능을 사용하면 파일이나 폴더를 Zip 형식 파일로 압축할 수 있습니다. ZipOutputStr은 주로 Zip 함수에서 사용됩니다.

HTML 파일 ZIP 압축은 Python의 zipfile 모듈을 통해 달성할 수 있습니다. ZIP 파일 객체를 만듭니다. ZIP 파일에 HTML 파일을 추가합니다. ZIP 파일 개체를 닫습니다.

함수 설명 페이지에서는 소스 코드 압축 패키지를 업로드하고, 백엔드는 압축 패키지의 압축을 풀고 각 파일의 내용을 가져옵니다. 관련 소스코드 (1) 먼저 압축해제된 파일에 해당하는 엔터티 클래스를 정의합니다. packagecom.sonar.data.vo;importlombok.Data;/***파일 구문 분석 개체**@authorYuanqiang.Zhang*@since2022/7/12*/@DatapublicclassUnzipFileVo{/***유형: 0-folder;1- 파일 */privateIntegertype;/***파일 경로(예: src/main/java/co)

win8 시스템은 일상생활에서 자주 접하게 되는 파일의 압축과 압축해제를 해야 하는 경우가 많습니다. 예전에는 누구나 먼저 압축해제 도구를 다운로드받아야 했는데, 오늘은 압축해제 형식 중 하나인 zip에 대해 자세히 알려드리겠습니다. win8 시스템. zip의 의미는 무엇입니까? win8 시스템에서 zip의 의미: 오래 전에 Microsoft는 Windows 시스템에 Zip 압축 지원을 통합했습니다. 고객은 타사 압축 도구를 설치하지 않고도 Zip 형식의 파일을 압축하거나 압축을 풀 수 있습니다. 1. 먼저 파일을 줄이는 것입니다. 이때, 관련된 파일을 모아서 정리하는 경우가 많습니다. 이때, 패키지로 묶어서 보관하면 관리도 편하고 용량도 줄어듭니다. 패키징하려는 파일을 선택하거나 여러 파일일 수 있습니다.
