PHP: hur man dekomprimerar ett ZIP-arkiv
Packa upp ett ZIP-arkiv
Idag, när du söker efter hur man dekomprimerar ett ZIP-arkiv i PHP i Google, hittar du i första position extraheringsfunktionerna i PECL-biblioteket. Men är det inte möjligt att dekomprimera detta standardformat utan att behöva gå igenom ett tredjepartsbibliotek? Huruvida ! Det är denna lösning som jag rekommenderar dig. Och detta av en mängd anledningar:
- Inga ytterligare bibliotek.
- Funktionalitet redan integrerad.
- Gemensam funktionalitet på alla plattformar med PHP 4 >= 4.1.0 eller PHP 5 >= 5.1.0
- Lätt att installera tack vare apt-get för Linux-användare eller tack vare de olika handledningarna för andra plattformar.
- Begränsa kodredundans eftersom det måste sägas, PECL API kan vara lättare att förstå koden som vi kommer att säga "låg nivå" är densamma, oavsett om vi går igenom inbyggt PHP eller av 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
|
fungera packa($path_zip, $tmp_folder = "/tmp/")
{
$alla_filer = array();
$zip = zip_open($path_zip);
if ($zip) {
$stream = zip_read($zip);
medan ($stream) {
var_dump($zipnamn);
$zip_name = zip_entry_name($ström);
$path_file_unzip = $tmp_folder.$zip_name;
$dir_folder = substr($path_file_unzip, 0, strrpos($path_file_unzip, "/"));
mkdir($katalog_mapp, 0777, sann);
$fp = fopen($path_file_unzip, "w");
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($ström);
fclose($fp);
}
$stream = zip_read($zip);
}
zip_close($zip);
}
avkastning $alla_filer;
}
|