PHP e como descompactar um arquivo ZIP
Agência web » Notícias digitais » PHP: como descompactar um arquivo ZIP

PHP: como descompactar um arquivo ZIP

Descompacte um arquivo ZIP

Hoje, quando você pesquisa como descompactar um arquivo ZIP em PHP no Google, encontra em primeiro lugar as funções de extração da biblioteca PECL. Mas não é possível descompactar esse formato padrão sem ter que passar por uma biblioteca de terceiros? Se ! É esta solução que eu recomendo a você. E isso por vários motivos:

  • Nenhuma biblioteca adicional.
  • Funcionalidade já integrada.
  • Funcionalidade comum em todas as plataformas com PHP 4 >= 4.1.0 ou PHP 5 >= 5.1.0
  • Fácil de instalar graças ao apt-get para usuários Linux ou graças aos vários tutoriais para outras plataformas.
  • Limite a redundância de código porque deve ser dito, a API PECL pode ser mais fácil de entender o código que diremos "baixo nível" é o mesmo, seja por PHP nativo ou por PECL ZipArchive

Script

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
função descompactar($path_zip, $tmp_folder = “/tmp/”)
{
$all_files = ordem();
$zip = zip_open($path_zip);
if ($zip) {
$fluxo = zip_read($zip);
enquanto ($fluxo) {
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_pasta, 0777, verdadeiro);
$fp = fopen($path_file_unzip, "c");
array_push($all_files, $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($fluxo);
fclose ($ fp);
}
$fluxo = zip_read($zip);
}
zip_close($zip);
}
retorno $all_files;
}

★ ★ ★ ★ ★