PHP: come decomprimere un archivio ZIP
Decomprimere un archivio ZIP
Oggi, quando cerchi su Google come decomprimere un archivio ZIP in PHP, trovi in prima posizione le funzioni di estrazione della libreria PECL. Ma non è possibile decomprimere questo formato standard senza dover passare attraverso una libreria di terze parti? Se ! È questa soluzione che ti consiglio. E questo per una moltitudine di ragioni:
- Nessuna libreria aggiuntiva.
- Funzionalità già integrate.
- Funzionalità comune su tutte le piattaforme con PHP 4 >= 4.1.0 o PHP 5 >= 5.1.0
- Facile da installare grazie ad apt-get per utenti Linux o grazie ai vari tutorial per altre piattaforme.
- Limita la ridondanza del codice perché va detto, l'API PECL può essere più facile da capire il codice che diremo "basso livello" è lo stesso, sia che passiamo tramite PHP nativo o tramite PECL ZipArchive
Copione
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
function decomprimere($percorso_zip, $tmp_folder = “/tmp/”)
{
$tutti_file = schieramento();
$zip = zip_open($percorso_zip);
if ($zip) {
$stream = zip_read($zip);
while ($ flusso) {
var_dump($zip_name);
$zip_name = zip_entry_name($stream);
$percorso_file_unzip = $cartella_tmp.$nome_zip;
$dir_folder = substr($percorso_file_unzip, 0, strrpos($percorso_file_unzip, "/"));
mkdir($dir_cartella, 0777, vero);
$fp = fopen($percorso_file_unzip, "w");
array_push($tutti_file, $percorso_file_unzip);
if (zip_entry_open($zip, $stream, "R")) {
$buf = zip_entry_read($stream, zip_entry_filesize($stream));
fscrivi($fp, “$buffo”);
zip_entry_close($flusso);
fclose ($ fp);
}
$stream = zip_read($zip);
}
zip_chiudi($zip);
}
ritorno $tutti_file;
}
|