PHP 자체 ZIP 압축,압축 해제 클래스 ZipArchiv 사용 지침

이 PHP 확장 클래스 를 사용 하려 면(PHP 5>=5.2.0,PECL zip>=1.1.0),일부 방법 은 PHP 5.2.+,php.ini 설정 지원 zip 이 필요 합 니 다.
win 시스템 에 대해 서 는 pp 를 직접 제거 합 니 다.zip.dll 확장 설명 을 사용 한 다음 http 서비스(IIS 또는 Apache)를 다시 시작 하면 됩 니 다.
리 눅 스 는 아직 실험 을 하지 않 았 기 때문에 이론 적 으로 차이 가 크 지 않 을 것 이다.
 기능:
1.압축 풀기 zip 파일
2.파일 을 zip 파일 로 압축
3.zip 파일 에 파일 추가
4.폴 더 를 zip 파일 로 포장 합 니 다(파일 추가 와 빈 폴 더 생 성 을 반복 해 야 합 니 다)
5.압축 파일 의 항목 삭제
ZipArchive 대상 상용 방법 소개
테스트 약속:
 테스트 파일 은 text.zip 입 니 다.이 압축 파일 은 압축 된 세 개의 파일(hello.txt,word.txt,ooxx.jpg)을 포함 하고 있 습 니 다.다음 과 같 습 니 다.

text.zip
     hello.txt
     word.txt
     ooxx.jpg
더 이상 조작 할 수 있 도록 zip 파일 열기
ZipArchive::open
 (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
 mixed ZipArchive::open ( string $filename [, int $flags ] )
두 번 째 매개 변수 설명
ZIPARCHIVE::OVERWRITE    항상 새 파일 을 만 듭 니 다.지정 한 zip 파일 이 존재 하면 덮어 씁 니 다.
ZIPARCHIVE::CREATE        지정 한 zip 파일 이 존재 하지 않 으 면 새로 만 듭 니 다.
ZIPARCHIVE::EXCL        지정 한 zip 파일 이 존재 하면 오류 가 발생 합 니 다.   
ZIPARCHIVE::CHECKCONS
반환 값: 
 반환 값 이 아래 속성 과 같 으 면 해당 하 는 오 류 를 표시 하거나 TRUE 를 되 돌려 줍 니 다.
 $res == ZipArchive::ER_EXISTS    파일 이 이미 존재 합 니 다.(파일 이 이미 존재 함)
$res == ZipArchive::ER_INCONS    Zip 아 카 이브 가 일치 하지 않 습 니 다.(압축 파일 이 일치 하지 않 음)
$res == ZipArchive::ER_INVAL    Invalid argument.(잘못된 인자)
$res == ZipArchive::ER_MEMORY    Malloc 실패.(메모리 오류?이것 은 확실 하지 않다)
$res == ZipArchive::ER_NOENT    No such file.(이런 파일 없 음)
$res == ZipArchive::ER_NOZIP    Not a zip archive.(압축 파일 이 하나 도 없 음)
$res == ZipArchive::ER_OPEN        파일 을 열 수 없습니다.(파일 을 열 수 없습니다.)
$res == ZipArchive::ER_READ        읽 기 오류.(읽 기 오류)
$res == ZipArchive::ER_SEEK        찾 는 중 오류 가 발생 했 습 니 다.

<?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     echo 'ok';
     // test
    $zip->extractTo('test');
     $zip->close();
 } else {
     echo 'failed, code:' . $res;
 }
 ?>
압축 파일 의 목록 색인 에 따라 압축 된 파일 의 이름 을 되 돌려 줍 니 다.
ZipArchive::getNameIndex
 string ZipArchive::getNameIndex ( int $index [, int $flags ] )

 <?php
 $zip = new ZipArchive();
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     var_dump($zip->getNameIndex(0)); // hello.txt
     var_dump($zip->getNameIndex(1)); // word.txt
     var_dump($zip->getNameIndex(2)); // ooxx.jpg
 } else {
     echo 'failed, code:' . $res;
 }
 $zip->close();
 ?>
압축 된 파일 이름 에 따라 이 파일 의 텍스트 흐름 을 가 져 옵 니 다.
ZipArchive::getStream
 resource ZipArchive::getStream ( string $name )

 <?php
 $zip = new ZipArchive();
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     $stream = $zip->getStream('hello.txt');
 } else {
     echo 'failed, code:' . $res;
 }
 $zip->close();
 $str = stream_get_contents($stream); //
var_dump($str);
 ?>
압축 파일 내 색인(0 부터)에 따라 압축 파일 내 파일 이름 을 수정 합 니 다.
ZipArchive::renameIndex
 bool ZipArchive::renameIndex ( int $index , string $newname )
 (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
성공 시 TRUE 로 돌아 가 거나 실패 시 FALSE 로 돌아 갑 니 다.

<?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     // newname.txt
     $zip->renameIndex(0,'newname.txt');
     $zip->close();
 } else {
     echo 'failed, code:' . $res;
 }
 ?>
압축 파일 안의 파일 이름 에 따라 압축 파일 안의 파일 이름 을 수정 합 니 다.
ZipArchive::renameName
 (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)

 <?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip');
 if ($res === TRUE) {
     // word.txt newword.txt
     $zip->renameName('word.txt','newword.txt');
     $zip->close();
 } else {
     echo 'failed, code:' . $res;
 }
 ?>
압축 파일 주석 가 져 오기(zip 파일 주석)
ZipArchive::getArchiveComment
 (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
 string ZipArchive::getArchiveComment ([ int $flags ] )
파라미터:ZipArchive::FLUNCHANGED
매개 변수 가 ZipArchive::FL 로 설정 되면UNCHANGED,변 하지 않 은 주석 을 되 돌려 줍 니 다.
 예 를 들 어 이 압축 파일 을 처리 할 때 setArchive Comment()방법 으로 설명 을 바 꾸 거나 설정 할 때
 Zip Archive 까지 합치 면:FLUNCHANGED 이 인 자 는 변 경 된 주석 내용 을 가 져 오 는 것 을 의미 합 니 다.그렇지 않 으 면 변 경 된 주석 내용 을 가 져 옵 니 다.
 유사 한 것 은 다음 과 같다.
Zip 아 카 이브::getCommentIndex 압축 파일 의 파일 인덱스 에 따라[파일 설명]가 져 오기
ZipArchive::getCommentName    압축 파일 에 있 는 파일 이름 에 따라[파일 설명]가 져 오기
 메모:파일 주석 입 니 다.압축 파일(zip)주석 이 아 닙 니 다.
 압축 파일 의 설명 을 설정 하거나 수정 합 니 다.(zip 의 파일 설명)
ZipArchive::setArchiveComment
 (PHP 5 >= 5.2.0, PECL zip >= 1.4.0)
 bool ZipArchive::setArchiveComment ( string $comment )

 <?php
 $zip = new ZipArchive;
 $res = $zip->open('test.zip', ZipArchive::CREATE);
 if ($res === TRUE) {
     //$zip->addFromString('test.txt', 'file content goes here');
     $zip->setArchiveComment('new archive comment');
     $zip->close();
     echo 'ok';
 } else {
     echo 'failed';
 }
 ?>
압축 파일 안의 색인 에 따라 압축 파일 안의 파일 을 삭제 합 니 다.(즉,파일 안의 항목 을 삭제 합 니 다)
ZipArchive::deleteIndex
 (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
1.zip 파일 extractTo()압축 풀기

 $zip = new ZipArchive();
1.압축 파일 을 어떻게 만 듭 니까?addFromString() addFile()
하나 이상 의 파일 을 zip 파일 로 포장 하 는 것 입 니 다.
1.새로운 ZipArchive 대상 만 필요 합 니 다.
2.그리고 이 대상 의 open 방법 으로 zip 파일 을 만 듭 니 다.
3.이 어 addFile 방법 을 사용 하여 방금 만 든 zip 파일 에 압축 할 파일 을 기록 합 니 다.
4.마지막 으로 이 대상 을 닫 는 것 을 기억 합 니 다.

<?php
 // ZipArchive
$zip = new ZipArchive;
 $res = $zip->open('test.zip');
 //
if ($res === TRUE) {
 //
} else {
     //
    echo 'failed, code:' . $res;
 }
 $zip->close();
이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 모두 에 게 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기