使用 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檔案提取到其所在的相同目錄,您可以確定該檔案的絕對路徑檔案並將其指定為提取目標:
<?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中文網其他相關文章!