PHP의 zip_entry_close() 함수는 zip_entry_open() 함수를 통해 열었던 ZIP 아카이브 항목(entry)을 닫는 역할을 합니다. 파일 작업이 끝난 후 리소스를 정리하여 메모리 누수를 방지하는 것이 좋은 습관입니다.
구문
zip_entry_close(zip_entry)
매개변수
zip_entry − 닫으려는 ZIP 항목 리소스입니다. 필수 값이며, 일반적으로 zip_read() 함수가 반환한 리소스를 전달합니다.
반환값
zip_entry_close() 함수는 성공 시 TRUE를, 실패 시 FALSE를 반환합니다. 따라서 반환값을 조건문으로 확인해 항목이 정상적으로 닫혔는지 판단할 수 있습니다.
예제
아래 예제는 "new.zip" 파일을 아카이브로 가정하고, 내부의 첫 번째 항목을 열어 읽은 뒤 닫는 과정을 보여줍니다.
<?php
$zip = zip_open("new.zip");
$zip_entry = zip_read($zip);
zip_entry_open($zip, $zip_entry, "rb");
$myfile = zip_entry_name($zip_entry);
$res = zip_entry_close($zip_entry);
if ($res == true)
echo("$myfile closed! ");
else
echo("$myfile cannot be closed!");
zip_close($zip);
?>
예제 동작 순서
- zip_open(): "new.zip" 아카이브를 엽니다.
- zip_read(): 아카이브에서 다음 항목(엔트리)을 읽어옵니다.
- zip_entry_open(): 해당 항목을 읽기 모드("rb")로 엽니다.
- zip_entry_name(): 항목 이름을 가져옵니다.
- zip_entry_close(): 항목을 닫고 결과에 따라 성공 또는 실패 메시지를 출력합니다.
- zip_close(): 마지막으로 ZIP 아카이브 자체를 닫습니다.
참고 사항
zip_entry_close()를 포함한 기존 절차형 zip_* 함수들은 PHP 7.4.0부터 폐기(deprecated)되었으며, PHP 8.0.0에서 완전히 제거되었습니다. 최신 PHP 버전을 사용한다면 객체 지향 방식의 ZipArchive 클래스를 사용하는 것이 권장됩니다.