ZIP-Dateien mit PHP extrahieren
Beim Versuch, eine Datei mit PHP zu entpacken, kann es bei der Übergabe des Dateinamens über eine URL zu Schwierigkeiten kommen wie in Ihrem Code zu sehen:
<?php $master = $_GET["master"]; system('unzip $master.zip'); // Incorrect syntax ?>
Korrigieren Sie das Syntax
Das Hauptproblem liegt in der Syntax des system()-Aufrufs. Die richtige Syntax besteht darin, den Systembefehl wie folgt aufzurufen:
system("unzip $master.zip");
Mit integrierten PHP-Funktionen
Während die Funktion system() die Aufgabe erfüllen kann, Es wird im Allgemeinen nicht empfohlen. PHP bietet integrierte Erweiterungen für den Umgang mit komprimierten Dateien, wie z. B. ZipArchive. Hier ist ein Beispiel für die Verwendung von 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(); } ?>
Zusätzliche Überlegungen
Lösung zum Extrahieren in das aktuelle Verzeichnis
Um die ZIP-Datei in dasselbe Verzeichnis zu extrahieren, in dem sie sich befindet, können Sie den absoluten Pfad zum Datei und geben Sie dies als Extraktionsziel an:
<?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(); } ?>
Das obige ist der detaillierte Inhalt vonWie kann ich ZIP-Dateien mit PHP sicher und effizient extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!