PHP și cum să dezarhivați o arhivă ZIP
Agenție web » Știri digitale » PHP: cum să decomprimați o arhivă ZIP

PHP: cum să decomprimați o arhivă ZIP

Dezarhivați o arhivă ZIP

Astăzi, când cauți cum să decomprimați o arhivă ZIP în PHP în Google, găsiți pe prima poziție funcțiile de extracție ale bibliotecii PECL. Dar nu este posibil să decomprimați acest format standard fără a fi nevoie să treceți printr-o bibliotecă terță parte? Fie că! Aceasta este solutia pe care ti-o recomand. Și asta dintr-o multitudine de motive:

  • Fără biblioteci suplimentare.
  • Funcționalitate deja integrată.
  • Funcționalitate comună pe toate platformele cu PHP 4 >= 4.1.0 sau PHP 5 >= 5.1.0
  • Ușor de instalat datorită apt-get pentru utilizatorii Linux sau datorită diferitelor tutoriale pentru alte platforme.
  • Limitați redundanța codului pentru că trebuie spus, PECL API poate fi mai ușor de înțeles codul despre care vom spune „low level” este același, indiferent dacă trecem prin PHP nativ sau prin PECL ZipArchive

Scenariu

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
funcţie dezarhivați($path_zip, $tmp_folder = „/tmp/”)
{
$all_files = mulțime,
$zip = zip_open($path_zip);
if ($zip) {
$stream = zip_read($zip);
în timp ce ($stream) {
var_dump($zip_name);
$zip_name = zip_entry_name($stream);
$path_file_unzip = $tmp_folder.$zip_name;
$dir_folder = substr($path_file_unzip, 0, strrpos($path_file_unzip, "/"));
mkdir($dir_folder, 0777, adevărat);
$fp = fopen($path_file_unzip, „w”);
array_push($toate_fișierele, $path_file_unzip);
if (zip_entry_open($zip, $stream, "r")) {
$buf = zip_entry_read($stream, zip_entry_filesize($stream));
fwrite($fp, „$buff”);
zip_entry_close($stream);
fclose($fp);
}
$stream = zip_read($zip);
}
zip_close($zip);
}
reveni $toate_fișierele;
}

★ ★ ★ ★ ★