PHP: kuidas ZIP-arhiivi lahti pakkida
Pakkige ZIP-arhiiv lahti
Täna, kui otsite Google'is, kuidas ZIP-arhiivi PHP-s lahti pakkida, leiate esimeselt positsioonilt PECL-i teegi ekstraktimise funktsioonid. Kuid kas seda standardvormingut ei ole võimalik lahti pakkida ilma kolmanda osapoole teeki kasutamata? kas ! Just seda lahendust soovitan teile. Ja seda mitmel põhjusel:
- Täiendavaid teeke pole.
- Funktsionaalsus on juba integreeritud.
- Ühine funktsionaalsus kõigil platvormidel, kus PHP 4 >= 4.1.0 või PHP 5 >= 5.1.0
- Lihtne installida tänu apt-get Linuxi kasutajatele või tänu erinevatele õpetustele teiste platvormide jaoks.
- Piirake koodi liiasust, sest tuleb öelda, et PECL API-st võib olla lihtsam aru saada koodist, mille kohta ütleme, et "madal tase" on sama, olenemata sellest, kas me läbime natiivse PHP või PECL ZipArchive'i
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
|
funktsioon tõmblukku lahti tõmbama($tee_zip, $tmp_kaust = "/tmp/")
{
$kõik_failid = massiivi();
$zip = zip_avatud($tee_zip);
if ($ zip) {
$voog = zip_read($zip);
kuigi ($stream) {
var_dump($zip_name);
$zip_name = zip_entry_name($stream);
$tee_faili_unzip = $tmp_kaust.$zip_nimi;
$dir_folder = substr($path_file_unzip, 0, strrpos($path_file_unzip, "/"));
mkdir($dir_kaust, 0777, tõsi);
$fp = fopen($path_file_unzip, "w");
massiiv_push($kõik_failid, $tee_faili_lahtipakkimine);
if (zip_entry_open($zip, $stream, "r")) {
$buf = zip_entry_read($stream, zip_entry_fileize($stream));
fwrite($fp, "$buff");
zip_entry_close($stream);
fclose($fp);
}
$voog = zip_read($zip);
}
zip_close($zip);
}
tagasipöördumine $kõik_failid;
}
|