PHP: kā atspiest ZIP arhīvu
Izpakojiet ZIP arhīvu
Šodien, meklējot, kā Google programmā PHP atspiest ZIP arhīvu, pirmajā vietā atrodat PECL bibliotēkas ekstrakcijas funkcijas. Bet vai nav iespējams atspiest šo standarta formātu, neizmantojot trešās puses bibliotēku? vai ! Tieši šo risinājumu es jums iesaku. Un tas ir daudzu iemeslu dēļ:
- Nav papildu bibliotēku.
- Funkcionalitāte jau ir integrēta.
- Kopīga funkcionalitāte visās platformās ar PHP 4 >= 4.1.0 vai PHP 5 >= 5.1.0
- Viegli instalējams, pateicoties apt-get Linux lietotājiem vai dažādām pamācībām citām platformām.
- Ierobežojiet koda dublēšanu, jo jāsaka, ka PECL API var būt vieglāk saprotams kods, par kuru mēs teiksim "zems līmenis" ir vienāds neatkarīgi no tā, vai mēs izmantojam vietējo PHP vai PECL ZipArchive.
Scenārijs
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
|
funkcija unzip($path_zip, $tmp_folder = “/tmp/”)
{
$visi_faili = masīvs,
$zip = zip_open($path_zip);
if ($ zip) {
$straume = zip_read($zip);
kamēr ($straume) {
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, patiess);
$fp = fopen($path_file_unzip, “w”);
masīvs_push($visi_faili, $ceļš_faila_unzip);
if (zip_entry_open($zip, $stream, "r")) {
$buf = zip_entry_read($straume, zip_entry_fileize($stream));
fwrite($fp, “$buff”);
zip_entry_close($straume);
fclose($fp);
}
$straume = zip_read($zip);
}
zip_close($zip);
}
atgriešanās $visi_faili;
}
|