PHP: kif tiddekompressa arkivju ZIP
Unzip arkivju ZIP
Illum, meta tfittex kif tiddekompressa arkivju ZIP f'PHP fil-Google, issib fl-ewwel pożizzjoni l-funzjonijiet ta 'estrazzjoni tal-librerija PECL. Imma mhuwiex possibbli li dekompressa dan il-format standard mingħajr ma jkollok tgħaddi minn librerija ta 'parti terza? Kemm jekk! Hija din is-soluzzjoni li nirrakkomanda lilek. U dan għal bosta raġunijiet:
- Ebda libreriji addizzjonali.
- Funzjonalità diġà integrata.
- Funzjonalità komuni fuq il-pjattaformi kollha b'PHP 4 >= 4.1.0 jew PHP 5 >= 5.1.0
- Faċli biex tinstalla grazzi għal apt-get għall-utenti tal-Linux jew grazzi għad-diversi tutorials għal pjattaformi oħra.
- Limitu s-sensja tal-kodiċi għaliex għandu jingħad, il-PECL API jista 'jkun aktar faċli biex tifhem il-kodiċi li aħna ngħidu "livell baxx" huwa l-istess, kemm jekk ngħaddu minn PHP nattiv jew minn 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
|
funzjoni unzip($path_zip, $tmp_folder = "/tmp/")
{
$all_files = firxa();
$zip = zip_open($path_zip);
if ($zip) {
$stream = zip_read($zip);
filwaqt li ($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, veru);
$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_read($zip);
}
zip_close($zip);
}
ritorn $all_files;
}
|