>  기사  >  백엔드 개발  >  PHP는 ZipArchive 클래스를 사용하여 파일 압축 및 압축 해제를 구현합니다.

PHP는 ZipArchive 클래스를 사용하여 파일 압축 및 압축 해제를 구현합니다.

王林
王林앞으로
2020-01-20 15:57:033290검색

PHP는 ZipArchive 클래스를 사용하여 파일 압축 및 압축 해제를 구현합니다.

ZipArchive 클래스는 파일 압축 및 압축 해제 작업에 특별히 사용되는 클래스입니다. 파일을 압축하면 디스크 공간을 절약할 수 있고, 압축된 파일 크기가 작아져 네트워크 전송이 용이해집니다.

ZipArchive 클래스에서는 주로 다음 메소드를 사용합니다.

1: open(압축된 패키지 파일 열기)

$zip = new \ZipArchive;
$zip->open('test_new.zip', \ZipArchive::CREATE)

매개변수 설명:

첫 번째 매개변수: 열려는 압축된 패키지 파일

아니요. 두 개의 매개변수:

ZIPARCHIVE::OVERWRITE는 항상 새 파일을 생성합니다. 지정된 zip 파일이 있으면 덮어쓰게 됩니다. ZIPARCHIVE::OVERWRITE总是创建一个新的文件,如果指定的zip文件存在,则会覆盖掉。

ZIPARCHIVE::CREATE如果指定的zip文件不存在,则新建一个。

ZIPARCHIVE::EXCL如果指定的zip文件存在,则会报错。

ZIPARCHIVE::CHECKCONS

ZIPARCHIVE::CREATE지정된 zip 파일이 존재하지 않으면 새 파일을 생성하세요.

ZIPARCHIVE::EXCL지정된 zip 파일이 존재하는 경우 오류가 보고됩니다.

ZIPARCHIVE::CHECKCONS지정된 zip에 대해 추가 일관성 테스트를 수행합니다.

(무료 학습 영상 튜토리얼 공유: php 영상 튜토리얼

)

2: addFile(지정된 파일을 압축 패키지에 추가)

//将test.txt文件添加到压缩包中
$zip->addFile('test.txt'); //第二个参数可对文件进行重命名
3: addEmptyDir(지정된 빈 디렉터리를 압축 패키지에 추가)

//将一个空的目录添加到zip中
 $zip->addEmptyDir ('newdir');
4: addFromString(지정된 내용이 포함된 파일을 압축 패키지에 추가)

// 将有指定内容的new.txt文件添加到zip文件中
$zip->addFromString('new.txt', '要添加到new.txt文件中的文本');
5: extractTO(압축 패키지를 지정된 디렉터리에 추출)

$zip->extractTo('test');
6: getNameIndex(파일 이름 반환) 인덱스 기준)

$zip->getNameIndex(0);//返回压缩包中索引为0的文件名称
7: getStream(압축된 파일 이름에 따라 파일의 텍스트 스트림 가져오기)

$zip->getStream('hello.txt');
8: renameIndex(압축된 파일 이름을 기준으로 압축 파일의 파일 수정) 압축 파일 내 인덱스(0부터 시작) name)

/把压缩文件内第一个文件修改成newname.txt
$zip->renameIndex(0,'newname.txt');
9: renameName(압축 파일의 파일 이름을 기준으로 압축 파일의 파일 이름 수정)

//把压缩文件内的word.txt修改成newword.txt
$zip->renameName('word.txt','newword.txt');
10: deleteIndex(압축 파일 삭제 파일을 압축 파일의 인덱스를 기준으로 압축)

//把压缩文件内第一个文件删除
$zip->deleteIndex (0);

11: deleteName(압축 파일의 파일 이름을 기준으로 파일 삭제)

//把压缩文件内的word.txt删除
$zip->deleteName('word.txt');

위는 ZipArchive 클래스의 몇 가지 일반적인 방법입니다. . 다음은 몇 가지 간단한 예입니다.

1: 압축 패키지 만들기

$zip = new \ZipArchive;
if ($zip->open('test_new.zip', \ZipArchive::CREATE) === true)
{
  // 将指定文件添加到zip中
  $zip->addFile('test.txt');
   
  // test.txt文件添加到zip并将其重命名为newfile.txt
  $zip->addFile('test.txt', 'newfile.txt');
   
  // 将test.txt文件添加到zip文件中的test文件夹内
  $zip->addFile('test.txt', 'test/newfile.txt');
   
  //将一个空的目录添加到zip中
  $zip->addEmptyDir ('test');
   
  // 将有指定内容的new.txt文件添加到zip文件中
  $zip->addFromString('new.txt', '要添加到new.txt文件中的文本');
   
  // 将有指定内容的new.txt添加到zip文件中的test文件夹
  $zip->addFromString('test/new.txt', '要添加到new.txt文件中的文本');
   
  //将images目录下所有文件添加到zip中
   if ($handle = opendir('images')){
     // 添加目录中的所有文件
     while (false !== ($entry = readdir($handle))){
        if ($entry != "." && $entry != ".." && !is_dir('images/' . $entry)){
            $zip->addFile('images/' . $entry);
        }
     }
     closedir($handle);
   }
   
  // 关闭zip文件
  $zip->close();
}
2

위 내용은 PHP는 ZipArchive 클래스를 사용하여 파일 압축 및 압축 해제를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 jb51.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제