728x90
PHP 코드를 이용하여 원하는 파일이나 폴더(디렉터리)를 원하는 파일명으로 Zip파일 형식으로 압축해보겠습니다.
라이브러리 파일은 위에 첨부한 파일을 받거나 http://www.phpconcept.net 홈페이지에서 다운 받으면 됩니다.
phpconcept에서는 Zip파일 형식 이외에 Tar나 Xml 형식으로 변환해주는 라이브러리도 제공하고 있습니다.
먼저, 코드 소개에 앞서 코드안에 있는 변수명에 대한 설명을 간단하게 드리겠습니다.
filename : 원본 파일(또는 폴더)
stored_filename : 변경된 파일(또는 폴더)
size : 원본 크기
compressed_size : 압축된 크기
mtime : 수정시간
folder : 폴더이면 "1" 반환
status : 성공하면 "ok"반환
이제 사용 예제를 통해 보여드리겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // $create = new PclZip("생성할 압축파일 이름"); // PclZip 객체에 test.zip 압축파일로 만듭니다. $zipfile = new PclZip('test.zip'); // $create->create("파일 or 디렉토리"); // $data에 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. // test.php 파일과 www 폴더를 현제 경로에 test.zip 파일로 압축하겠습니다. $data = array(); $data = array("test.php", "www"); $create = $zipfile->create($data); echo "<pre>"; print_r($create); echo "</pre>"; ?> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // $create = new PclZip("생성할 압축파일 이름"); // PclZip 객체에 test.zip 압축파일로 만듭니다. $zipfile = new PclZip('test.zip'); // $create->create("파일 or 디렉토리", ); // $data에 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. // www 폴더를 현제 경로에 test.zip 파일로 압축하겠습니다. // 그리고 $data 뒤에 test 입력하고, 압축하면 stored_filename 변수에 // 이동경로를 확인할 수 있습니다, $data = "www"; $create = $zipfile->create($data, "test"); echo "<pre>\n"; print_r($create); echo "</pre>\n"; ?> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // PclZip 객체를 생성합니다. // 추가할 압축파일를 선택합니다. // test.zip 에 파일을 추가하겠습니다. $zipfile = new PclZip('test.zip'); // $data에 추가할 파일을 배열로 지정합니다. // $data에 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. $data = array("index.gif","test.gif"); $add = $zipfile->add($data); echo "<pre>"; print_r($add); echo "</pre>"; ?> | cs |
여기까지는 압축하는 방법에 대한 코드입니다.
다음은, 압축파일의 내용을 조회하는 코드를 보겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // PclZip 객체를 생성합니다. // 목록을 가져올 파일을 선택합니다. $zipfile = new PclZip('test.zip'); // 엔트리 얻기 $list = $zipfile->listContent(); echo "<pre>"; print_r($list); echo "</pre>"; ?> | cs |
다음은 압축파일 해제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // PclZip 객체를 생성합니다. //$객체 = new PclZip("해제할 압축파일 이름"); $zipfile = new PclZip('test.zip'); // 참고로 $extract 변수를 정의하지 않아도 압축해제는 가능합니다. $extract = $zipfile->extract(); echo "<pre>"; print_r($extract); echo "</pre>"; ?> | cs |
다음은 특정 폴더 내에 있는 압축파일 해제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // PclZip 객체를 생성합니다. //$객체 = new PclZip("해제할 압축파일 이름"); $zipfile = new PclZip('test.zip'); // 압축파일을 habony 폴더에 압축해제합니다. $extract = $zipfile->extract(PCLZIP_OPT_PATH, './habony/'); echo "<pre>"; print_r($extract); echo "</pre>"; ?> | cs |
마지막으로 압축파일 내에 있는 특정파일을 삭제 하는 코드 입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // pcl lib 경로 설정 include('pclzip.lib.php'); // PclZip 객체를 생성합니다. // 압축파일을 선택합니다. $zipfile = new PclZip('test.zip'); // test.gif 를 삭제하겠습니다. // 하나의 파일(또는 폴더)이거나 배열형 파일(또는 폴더)가 올 수 있습니다. $delete = $zipfile->delete(PCLZIP_OPT_BY_NAME,"test.gif"); echo "<pre>"; print_r($delete); echo "</pre>"; ?> | cs |
이정도면 PHP 로 Zip 형식 압축파일을 마음데로 가지고 놀 수 있겠죠? ㅎ 사용중에 궁금하신 사항은 댓글로 문의 주시면 답변 드리겠습니다.
'개발이야기 > PHP' 카테고리의 다른 글
curl을 이용하여 post, get 방식 으로 데이터 전송하기 (0) | 2018.02.13 |
---|---|
우분투(Ubuntu) 에서 PHP 설치 하기 (0) | 2018.02.08 |
PHP 시간, 날짜 함수의 모든 것 (0) | 2018.02.05 |
PHP로 이메일 발송하기 (0) | 2018.02.02 |
curl 을 이용한 pushbullet 이용 (0) | 2018.02.01 |