PHP로 ZIP 파일 추출
PHP를 사용하여 파일의 압축을 풀려고 할 때 URL을 통해 파일 이름을 전달할 때 어려움을 겪을 수 있습니다. 코드에 표시된 대로:
<?php $master = $_GET["master"]; system('unzip $master.zip'); // Incorrect syntax ?>
수정 구문
가장 큰 문제는 system() 호출의 구문에 있습니다. 올바른 구문은 다음과 같이 시스템 명령을 호출하는 것입니다:
system("unzip $master.zip");
내장 PHP 함수 사용
system() 함수가 작업을 수행할 수 있지만, 일반적으로 권장되지 않습니다. PHP는 ZipArchive와 같은 압축 파일 처리를 위한 내장 확장 기능을 제공합니다. 다음은 ZipArchive를 사용하는 예입니다.
<?php $zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo 'Extraction successful!'; } else { echo 'Extraction failed: ' . $zip->getStatusString(); } ?>
추가 고려 사항
현재 디렉터리로 추출하기 위한 솔루션
ZIP 파일을 해당 디렉터리에 추출하려면 ZIP 파일의 절대 경로를 결정할 수 있습니다. 파일을 추출하고 이를 추출 대상으로 지정합니다:
<?php $file = 'file.zip'; $path = pathinfo(realpath($file), PATHINFO_DIRNAME); $zip = new ZipArchive; $res = $zip->open($file); if ($res === TRUE) { $zip->extractTo($path); $zip->close(); echo "Extraction complete!"; } else { echo "Extraction failed: " . $zip->getStatusString(); } ?>
위 내용은 PHP를 사용하여 어떻게 안전하고 효율적으로 ZIP 파일을 추출할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!