PHP에서 압축 파일을 처리하는 것은 특히 업로드 된 패키지 데이터 또는 자동 배포를 처리 할 때 일반적인 작업입니다. 그중 Zip_Read () 는 Zipary의 모든 항목을 가로 지르는 Ziparchive 의 이전 인터페이스입니다. 이 방법은 객체 지향 Ziparchive 클래스로 점점 더 많이 대체되었지만 Zip_Read ()는 특정 특정 프로젝트 또는 호환성 요구에 따라 실질적인 가치를 가지고 있습니다.
이 기사에서는 실제 예제를 사용하여 Zip_read () 함수를 사용하여 각 항목의 정보를 ZIP 파일로 읽는 방법을 점차적으로 시연합니다.
먼저 zip 파일이 필요합니다.이 파일이 필요합니다.이 파일은 여러 .txt 파일을 포함하는 압축 패키지와 같은 파일 모음 일 수 있습니다. 예를 들어 example.zip 이라는 압축 파일이 이미 있다고 가정 해 봅시다. 예를 들어 서버 디렉토리에 배치하십시오.
/var/www/html/files/example.zip
PHP는 zip_open () 함수를 제공하여 Zip 파일을 열고 리소스 핸들을 반환합니다. 이 핸들은 후속 읽기 항목에 사용됩니다.
<?php
$zipPath = '/var/www/html/files/example.zip';
$zip = zip_open($zipPath);
if (is_resource($zip)) {
echo "ZIP 파일을 성공적으로 열 수 있습니다。\n";
} else {
echo "열 수 없습니다 ZIP 문서。\n";
}
?>
zip 파일이 열리면 zip_read ()를 사용하여 각 항목을 반복 할 수 있습니다. 완전한 읽기 과정은 다음과 같습니다.
<?php
$zipPath = '/var/www/html/files/example.zip';
$zip = zip_open($zipPath);
if (is_resource($zip)) {
while ($zipEntry = zip_read($zip)) {
$entryName = zip_entry_name($zipEntry);
echo "항목을 발견하십시오: " . $entryName . "\n";
if (zip_entry_open($zip, $zipEntry, "r")) {
$contents = zip_entry_read($zipEntry, zip_entry_filesize($zipEntry));
echo "컨텐츠 미리보기: " . substr($contents, 0, 100) . "\n\n";
zip_entry_close($zipEntry);
}
}
zip_close($zip);
} else {
echo "열려 있는 ZIP 문서失败。\n";
}
?>
이 코드에서는 zip_read () 를 통해 현재 항목을 가져온 다음 zip_entry_name ()을 통해 파일 이름을 가져오고 zip_entry_read ()를 사용하여 파일 내용을 읽습니다. 일부 항목은 이진 또는 큰 파일 일 수 있으므로 여기에서 처음 100 자만 미리 보입니다.
업로드 인터페이스를 제공한다고 가정하면 사용자가 업로드 한 ZIP 파일이 서버에서 압축 해제되고 콘텐츠가 합법적인지 확인합니다. zip_read () 를 통해 파일을 가로 지르고 config.json 과 같은 특정 파일 이름이 있는지 확인할 수 있습니다.
<?php
$zipPath = '/var/www/html/uploads/user_upload.zip';
$zip = zip_open($zipPath);
$foundConfig = false;
if (is_resource($zip)) {
while ($zipEntry = zip_read($zip)) {
if (zip_entry_name($zipEntry) === 'config.json') {
$foundConfig = true;
break;
}
}
zip_close($zip);
}
if ($foundConfig) {
echo "업로드 패키지에 포함됩니다 config.json,요구 사항을 충족하십시오。\n";
} else {
echo "부족 config.json 문서,잘못된 업로드。\n";
}
?>
Zip_Read () 는 절차 적 오래된 인터페이스이며 새로운 프로젝트에서 Ziparchive를 사용하는 것이 좋습니다.
동시 동시 시나리오에서 수동으로 운영되는 자원 핸들을 조심하십시오. 파일 핸들 릴리스 문제가 특히 좋을 것입니다.
웹 업로드 파일 함수를 사용하는 경우 php.ini 의 관련 업로드 크기 제한이 upload_max_filesize 및 post_max_size 와 같이 올바르게 구성되어 있는지 확인하십시오.
Zip_Read () 는 이전 PHP ZIP 작동 기능이지만 일부 시나리오에서는 여전히 학습 및 사용 가치가 있습니다. 이 기사의 예를 통해 Zip_read () 함수를 단계별로 사용하여 ZIP 파일의 모든 항목을 읽고 자동화 된 컨텐츠 확인, 파일 검토 등과 같은 실제 프로젝트에 적용하는 방법을 배웠다고 생각합니다.