PHP에서 Zip 파일로 작업 할 때는 압축 패키지의 모든 항목을 통과해야합니다. php는 zip_entry_read ()가 Zip 파일의 내용을 읽기 위해 Zip_Read () 함수를 제공하지만 실제 작동에서 마지막 항목이 읽은지 여부를 결정하는 방법은 일반적인 문제입니다.
이 기사에서는 PHP의 Zip Extension 및 Zip_read () 기능을 사용하여 압축 패키지의 모든 항목이 읽었는지 여부를 결정하는 방법을 자세히 설명합니다.
먼저 zip_open () 가있는 zip 파일을 열고 리소스 핸들을 반환 한 다음 zip_read () 를 통해 각 항목 객체를 얻어야합니다. 예제는 다음과 같습니다.
$zip = zip_open("http://m66.net/path/to/yourfile.zip");
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
echo "항목을 읽습니다: " . zip_entry_name($entry) . "\n";
// 항목을 읽습니다콘텐츠
if (zip_entry_open($zip, $entry)) {
$content = zip_entry_read($entry, zip_entry_filesize($entry));
echo $content;
zip_entry_close($entry);
}
}
zip_close($zip);
} else {
echo "열려 있는 ZIP 파일이 실패했습니다";
}
위의 코드에서는 각 항목을 순서 대로 ($ entry = zip_read ($ zip)) 로 가져오고 루프의 끝은 모든 항목을 읽었 음을 의미합니다.
zip_read ()는 다음 항목 자원을 반환합니다. 거짓이 반환되면 더 이상 항목이 없음을 의미합니다. 실제로 Zip_Read () 의 리턴 값이 False 인지 직접 결정하는 것은 모든 항목을 읽었는지 여부를 결정하는 것입니다.
예:
$zip = zip_open("http://m66.net/path/to/yourfile.zip");
if (is_resource($zip)) {
while (($entry = zip_read($zip)) !== false) {
echo "현재 항목: " . zip_entry_name($entry) . "\n";
// 항목의 내용을 처리하십시오
}
echo "모든 항목을 읽었습니다。\n";
zip_close($zip);
}
이 코드에서 Zip_Read ()가 False를 반환 할 때 프로그램은 모든 항목이 가로 지르고 있음을 고려할 수 있습니다.
다음은 zip 파일의 모든 항목을 읽고 이름 및 내용을 출력하는 데모입니다.
<?php
$zipFile = "http://m66.net/files/example.zip";
$zip = zip_open($zipFile);
if (!is_resource($zip)) {
die("无法열려 있는 ZIP 문서:$zipFile\n");
}
while (($entry = zip_read($zip)) !== false) {
$entryName = zip_entry_name($entry);
echo "입력 이름: $entryName\n";
if (zip_entry_open($zip, $entry)) {
$entrySize = zip_entry_filesize($entry);
$content = zip_entry_read($entry, $entrySize);
echo "콘텐츠:\n$content\n";
zip_entry_close($entry);
} else {
echo "无法열려 있는条目: $entryName\n";
}
}
echo "모든 항목을 읽었습니다。\n";
zip_close($zip);
?>
Zip_Read ()가 호출 될 때마다 다음 Zip 항목 자원을 반환하고 모든 항목을 읽은 후에 False를 반환합니다.
마지막 항목을 읽었는지 확인하려면 Zip_Read () 의 리턴 값이 False 인지 확인하십시오.
zip_entry_open () 및 zip_entry_read ()를 결합하면 항목 내용을 읽을 수 있습니다.
위의 방법을 통해 ZIP 파일의 모든 항목을 효율적이고 정확하게 가로 지르고 읽기 진행 상황을 판단 할 수 있습니다.