PHP: si të dekompresoni një arkiv ZIP
Zhzip një arkiv ZIP
Sot, kur kërkoni se si të dekompresoni një arkiv ZIP në PHP në Google, gjeni në pozicionin e parë funksionet e nxjerrjes së bibliotekës PECL. Por a nuk është e mundur të dekompresoni këtë format standard pa pasur nevojë të kaloni nëpër një bibliotekë të palëve të treta? Nëse ! Është kjo zgjidhje që unë ju rekomandoj. Dhe kjo për një sërë arsyesh:
- Nuk ka biblioteka shtesë.
- Funksionaliteti tashmë është i integruar.
- Funksionaliteti i përbashkët në të gjitha platformat me PHP 4 >= 4.1.0 ose PHP 5 >= 5.1.0
- Lehtë për t'u instaluar falë apt-get për përdoruesit e Linux ose falë udhëzimeve të ndryshme për platforma të tjera.
- Kufizoni tepricën e kodit sepse duhet thënë se API PECL mund të jetë më e lehtë për të kuptuar kodin që do të themi "nivel i ulët" është i njëjtë, pavarësisht nëse kalojmë përmes PHP-së amtare ose PECL ZipArchive
Dorëshkrim
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
|
funksion hap zinxhirin($path_zip, $tmp_folder = “/tmp/”)
{
$all_files = grup();
$zip = zip_open ($rruga_zip);
if ($zip) {
$stream = zip_lexo ($zip);
ndërsa ($stream) {
var_dump ($zip_name);
$zip_name = zip_entry_emri ($stream);
$path_file_unzip = $tmp_folder.$zip_name;
$dir_folder = substr($path_file_unzip, 0, strrpos($path_file_unzip, "/"));
mkdir($dir_folder, 0777, i vërtetë);
$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 ($stream);
fclose ($fp);
}
$stream = zip_lexo ($zip);
}
zip_close ($zip);
}
kthim $all_files;
}
|