php에서 압축 파일을 처리 할 때 zip_read () 및 zip_entry_read ()는 zip 파일의 내용을 읽는 데 도움이되는 두 가지 매우 유용한 기능입니다. 이 기사는이 두 기능을 조합하여 항목별로 ZIP 압축 패키지 항목의 각 항목의 내용을 읽고 출력하는 방법을 자세히 설명합니다.
Zip_Read (Resource $ Zip)
이 함수는 열린 ZIP 리소스를 수용하고 ZIP의 현재 항목을 나타내는 Zip 항목을 가리키는 리소스를 반환합니다. 모든 항목을 읽으면 False가 반환됩니다.
zip_entry_read (자원 $ zip_entry, int $ len = 1024)
이 함수는 지정된 길이의 현재 지퍼 항목의 내용을 읽습니다. 현재 지퍼 항목에 의해 읽을 자원의 수와 수를 전달해야합니다.
다음 샘플 코드는 zip 파일을 열고 모든 항목을 반복하고 각 항목의 내용을 출력하는 방법을 보여줍니다.
<?php
// a Zip 문서,경로 예:http://m66.net/example.zip
$zip = zip_open('http://m66.net/example.zip');
if (!$zip) {
echo "열 수 없습니다 Zip 문서。";
exit;
}
// 트래버스 Zip 모든 항목
while ($zip_entry = zip_read($zip)) {
// 입장 이름을 얻으십시오
$entry_name = zip_entry_name($zip_entry);
echo "항목을 읽습니다: $entry_name\n";
// 콘텐츠를 읽으려면 현재 항목을 엽니 다
if (zip_entry_open($zip, $zip_entry)) {
$content = '';
// 循环항목을 읽습니다内容,한 번에 읽기에 너무 큰 콘텐츠를 피하십시오
while ($data = zip_entry_read($zip_entry, 1024)) {
$content .= $data;
}
// 출력 입력 컨텐츠
echo "내용은 다음과 같습니다:\n";
echo $content . "\n";
// 현재 항목을 닫으십시오
zip_entry_close($zip_entry);
} else {
echo "열 수 없습니다条目 $entry_name 읽기를 수행하십시오。\n";
}
echo "------------------------\n";
}
// 폐쇄 Zip 의지
zip_close($zip);
?>
zip_open () 함수는 zip 파일을 열거나 로컬 경로를 지원하거나 원격 URL (예 : 예제에서 http://m66.net/example.zip ) 일 수 있습니다.
zip_read () 루프를 통해 각 항목을 읽으십시오.
각 항목에서 zip_entry_open ()을 호출하여 열 수 있습니다. 그런 다음 Zip_entry_read ()를 사용하여 내용을 읽습니다. 여기에서는 1024 바이트를 한 번에 읽고 내용이 완료 될 때까지 루프됩니다.
읽은 후 항목을 닫고 마지막으로 전체 zip 파일 리소스를 닫으십시오.
PHP의 Zip_Read 기능은 ZIP 확장에 의존하여 환경에서 확장이 활성화되었는지 확인합니다.
원격 URL 액세스를 위해서는 서버가 allow_url_fopen을 지원해야합니다.
큰 파일의 경우 메모리 오버플로를 피하기 위해 읽기 블록 크기를 합리적으로 제어하는 것이 좋습니다.
이 방법은 텍스트 파일 또는 작은 이진 파일을 읽는 데 적합합니다. 복잡한 ZIP 작업의 경우 ZipAchive 클래스 사용을 고려할 수 있습니다.