PHP 자체 ZIP 압축,압축 해제 클래스 ZipArchiv 사용 지침
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();
이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 모두 에 게 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.