파일 압축
파일에서 압축된 패키지를 생성합니다.
<?php $path = "c:/wamp/www/log.txt"; $filename = "test.zip"; $zip = new ZipArchive(); $zip->open($filename,ZipArchive::CREATE); //打开压缩包 $zip->addFile($path,basename($path)); //向压缩包中添加文件 $zip->close(); //关闭压缩包
위 코드는 c:/wamp/www/log.txt 파일을 test.zip으로 압축하여 현재 디렉터리에 저장합니다.
관련 권장 사항: "php 시작 튜토리얼"
여러 파일 압축
여러 파일 압축은 실제로 addFile이 여러 번 실행됨을 의미하며 이는 배열을 순회하여 수행할 수 있습니다.
<?php $fileList = array( "c:/wamp/www/log.txt", "c:/wamp/www/weixin.class.php" ); $filename = "test.zip"; $zip = new ZipArchive(); $zip->open($filename,ZipArchive::CREATE); //打开压缩包 foreach($fileList as $file){ $zip->addFile($file,basename($file)); //向压缩包中添加文件 } $zip->close(); //关闭压缩包
디렉토리 압축
<?php function addFileToZip($path,$zip){ $handler=opendir($path); //打开当前文件夹由$path指定。 while(($filename=readdir($handler))!==false){ if($filename != "." && $filename != ".."){//文件夹文件名字为'.'和‘..’,不要对他们进行操作 if(is_dir($path."/".$filename)){// 如果读取的某个对象是文件夹,则递归 addFileToZip($path."/".$filename, $zip); }else{ //将文件加入zip对象 $zip->addFile($path."/".$filename); } } } @closedir($path); } $zip=new ZipArchive(); if($zip->open('rsa.zip', ZipArchive::OVERWRITE)=== TRUE){ addFileToZip('rsa/', $zip); //调用方法,对要打包的根目录进行操作,并将ZipArchive的对象传递给方法 $zip->close(); //关闭处理的zip文件 }
zip 패키지 압축 및 다운로드
저의 경우 패키지해서 다운로드용으로 제공한 후 압축된 패키지를 삭제해야 합니다.
는 다음 단계로 나눌 수 있습니다.
(1) 주어진 경로가 폴더인지 파일인지 확인합니다. 파일을 추가하려면 폴더를 탐색해야 합니다.
(2) 해당 파일 헤더를 설정하고 readfile 기능을 사용하여 다운로드를 제공합니다.
(3) 압축된 패키지를 삭제하려면 연결 해제 기능을 사용하세요.
아아아아위 내용은 PHP에서 파일을 압축하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!