Dateidekomprimierung in PHP
Sie möchten eine Datei mit PHP dekomprimieren, haben aber Schwierigkeiten, wenn Sie versuchen, den Dateinamen über die URL zu übergeben . Lassen Sie uns das Problem untersuchen und Ihnen eine Lösung anbieten.
Fehleranalyse
Sie erhalten den Dateinamen über $_GET, aber im Code wird das veraltete $HTTP_GET_VARS verwendet, PHP empfiehlt die Verwendung von $_GET. Darüber hinaus verwenden Sie system('unzip $master.zip') zum Entpacken der Datei, was unsicher ist, da hierfür ein Systemaufruf auf dem Server erforderlich ist.
Empfohlene Lösung
PHP bietet eine Erweiterung, die speziell für die Verarbeitung komprimierter Dateien entwickelt wurde, nämlich ZipArchive. Es wird empfohlen, es wie folgt zu verwenden:
$zip = new ZipArchive; $res = $zip->open('file.zip'); if ($res === TRUE) { $zip->extractTo('/myzips/extract_path/'); $zip->close(); echo '解压成功!'; } else { echo '解压失败!'; }
Relative Pfade behandeln
Wenn Sie möchten, dass die Datei in dasselbe Verzeichnis wie die Datei extrahiert wird, müssen Sie kann die Datei ermitteln Absoluter Pfad und geben Sie ihn wie folgt als Dekomprimierungsziel an:
$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"; }
Sicherheitstipps
Überprüfen Sie immer Benutzereingaben, um das Einschleusen von Schadcode zu verhindern. Denken Sie daran:
Benutzereingaben immer validieren!
Das obige ist der detaillierte Inhalt vonWie entpacke ich Dateien sicher von einer URL in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!