PHP中的文件解壓縮
您希望使用 PHP 解壓縮文件,但當您嘗試透過 URL 傳遞檔案名稱時遇到了困難。讓我們深入探討問題並為您提供解決方案。
錯誤分析
您透過 $_GET 取得檔案名,但程式碼中使用了過時的 $HTTP_GET_VARS,PHP 建議使用 $_GET。此外,您使用 system('unzip $master.zip') 解壓縮文件,這是不安全的,因為它需要在伺服器上執行系統呼叫。
推薦解決方案
PHP 提供了專用於處理壓縮檔案的擴展,即 ZipArchive。建議使用它,如下所示:
$zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo '解压成功!'; } else { echo '解压失败!'; }
處理相對路徑
如果您希望將檔案解壓縮到與檔案所在的目錄中,您可以確定檔案的絕對路徑並將其指定為解壓縮目標,如下所示:
$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 "解压成功! $file 已解压到 $path"; } else { echo "解压失败!无法打开 $file"; }
安全提示
始終對使用者輸入進行驗證,以防止惡意程式註入。請牢記:
務必對使用者輸入進行驗證!
以上是如何在 PHP 中安全地從 URL 解壓縮檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!