zip 파일을 처리하기 위해 PHP의 zip_read () 함수를 사용하는 경우 "제공된 인수는 유효한 Zip 디렉토리 리소스가 아닙니다"오류 메시지를 만나는 것이 일반적인 문제입니다. 이 기사는이 오류의 원인을 자세히 분석하고 Zip_read ()를 올바르게 사용하는 방법과 문제를 피하고 해결하는 방법을 소개합니다.
Zip_Read ()는 PHP의 Zip Extension이 ZIP 압축 패키지로 읽기 항목 (파일 또는 디렉토리)에 제공하는 기능입니다. 사용 프로세스는 일반적으로 다음과 같습니다.
zip_open ()을 사용하여 zip 파일을 열고 리소스 핸들을 반환하십시오.
zip_read ()를 사용하여 리소스의 다음 항목을 읽으십시오.
파일 이름, 크기 등과 같은 프로세스 입력 정보
기능 서명 예 :
$zip = zip_open('example.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
echo zip_entry_name($entry) . "\n";
}
zip_close($zip);
}
이 오류는 zip_read () 함수로 전달 된 인수가 유효한 zip 디렉토리 리소스가 아님을 나타냅니다. 일반적으로 이것은 다음을 의미합니다.
zip_open () 가 false를 반환하고 zip 파일을 성공적으로 열 수 없습니다.
zip_read () 로 전달 된 인수는 zip_open ()에 의해 반환 된 리소스가 아닙니다.
자원이 닫히거나 손상되었습니다.
요컨대, Zip_Read ()는 매개 변수로 유효한 zip 리소스 핸들이 필요합니다. 그렇지 않으면 오류 가보고됩니다.
파일 경로가 zip_open () 로 전달 된 파일이 잘못되거나 파일이 존재하지 않으면 Zip_Open ()은 리소스가 아닌 False를 반환합니다.
솔루션 : 파일 경로가 올바른지 확인하고 파일이 존재하며 읽을 수 있습니다.
예:
$zipFile = 'path/to/file.zip';
if (!file_exists($zipFile)) {
die("파일이 존재하지 않습니다!");
}
$zip = zip_open($zipFile);
if (!is_resource($zip)) {
die("열 수 없습니다 ZIP 문서!");
}
프로그램 로직이 잘못되었고 비 재료 유형이 zip_read () 로 전달 될 수 있습니다.
솔루션 : Zip_Open () 의 반환 값이 호출하기 전에 리소스인지 확인하십시오.
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
// 처리 항목
}
} else {
echo "열려 있는 ZIP 문서失败。";
}
Zip_Close ()가 먼저 자원을 닫기 위해 호출 된 후 Zip_Read ()가 다시 호출되면이 오류가 발생합니다.
솔루션 : 호출 순서가 올바른지 확인하고 리소스를 닫기 전에 Zip_read ()를 호출하지 마십시오.
PHP가 ZIP 확장을 활성화하지 않으면 관련 기능을 호출 할 수 있습니다.
해결 방법 : ZIP 확장이 활성화되어 있는지 확인하려면 PHP 구성을 확인하십시오.
php -m | grep zip
zip이 표시되지 않으면 php.ini 에서 확장자를 활성화하거나 설치해야합니다.
<?php
$zipFile = 'm66.net/files/test.zip'; // 注意替换为实际문서路径
// 열려 있는 ZIP 문서
$zip = zip_open($zipFile);
if (!is_resource($zip)) {
die("열 수 없습니다 ZIP 문서或문서格式错误。");
}
while (($entry = zip_read($zip)) !== false) {
echo "문서名: " . zip_entry_name($entry) . "\n";
}
zip_close($zip);
?>
"제공된 인수는 유효한 zip 디렉토리 리소스가 아닙니다"오류는 나타납니다. 주로 들어오는 매개 변수가 유효한 zip 리소스가 아니기 때문입니다. 일반적으로 필수 :
zip 파일이 존재하고 경로가 올바른지 확인하십시오.
zip_open ()가 거짓이 아닌 리소스를 반환해야합니다.
자원을 올바르게 사용하고 미리 닫지 마십시오.
PHP ZIP 확장이 설치되어 활성화되어 있는지 확인하십시오.
위의 문제를 올바르게 확인하고 처리하면이 오류를 효과적으로 피할 수 있습니다. 이 기사가 Zip_Read () 사용의 의심을 해결하는 데 도움이되기를 바랍니다.