Ich benutze CodeIgniter und ich kann nicht herausfinden, wie man Dateien entpackt!Wie kann ich eine .gz-Datei mit PHP entpacken?
Antwort
Download the Unzip library und umfassen oder autoload
die unzip
Bibliothek
$this->load->library('unzip');
Links sind tot .. lass mich die Links finden, wenn ich kann und aktualisieren – fedmich
die Funktionen durch die Zlib Compression Erweiterung implementiert verwenden.
Dieser Code-Schnipsel zeigt, wie aus der Erweiterung zur Verfügung gestellt einige der Funktionen nutzen:
// open file for reading
$zp = gzopen($filename, "r");
// read 3 char
echo gzread($zp, 3);
// output until end of the file and close it.
gzpassthru($zp);
gzclose($zp);
PHP selbst hat eine Reihe von Funktionen für die mit gzip-Dateien handeln.
Wenn Sie eine neue, unkomprimierte Datei erstellen möchten, wäre es in etwa so.
Hinweis: Dies überprüft nicht, ob die Zieldatei zuerst existiert, löscht nicht die Eingabedatei oder führt keine Fehlerprüfung durch. Sie sollten diese wirklich beheben, bevor Sie dies im Produktionscode verwenden.
// This input should be from somewhere else, hard-coded in this example
$file_name = 'file.txt.gz';
// Raising this value may increase performance
$buffer_size = 4096; // read 4kb at a time
$out_file_name = str_replace('.gz', '', $file_name);
// Open our files (in binary mode)
$file = gzopen($file_name, 'rb');
$out_file = fopen($out_file_name, 'wb');
// Keep repeating until the end of the input file
while(!gzeof($file)) {
// Read buffer-size bytes
// Both fwrite and gzread and binary-safe
fwrite($out_file, gzread($file, $buffer_size));
}
// Files are done, close files
fclose($out_file);
gzclose($file);
Hinweis: Diese befasst sich mit gzip nur. Es handelt sich nicht um Teer.
Ich habe diesen Code verwendet und es funktioniert perfekt. nur fragen, wie es funktioniert mit Ordnern in der gz-Datei und wie man den Ausgabeordner von extrahierten Dateien zeigt. –
@RealMan gzip unterstützt nur einzelne Dateien. Sie benötigen eine .tar.gz für mehrere Dateien. Ich bin nicht sicher, ob PHP integrierte Unterstützung für Teer hat oder nicht. – Powerlord
Wenn der Zugang zum System haben():
system("gunzip file.sql.gz");
Sollte funktionieren aber die meiste Zeit System() wird aus Sicherheitsgründen deaktiviert – fedmich
Eine gz-Datei unterscheidet sich von einer ZIP-Datei, auch wenn normalerweise ein Dienstprogramm, das in der Lage ist, Dateien zu dekomprimieren .zip ist auch in der Lage zu dekomprimieren. gz-Dateien. – kiamlaluno