အထူးသဖြင့်လူပေါင်းစုံ directory ဖွဲ့စည်းပုံပါ 0 င်သော compressed package ကို decompress လုပ်သည့်အခါ compressed directory struction တစ်ခုဖြစ်လာသည့်အချိန်သည်အလွန်အရေးကြီးသောခြေလှမ်းတစ်ခုဖြစ်သည်။ ဒီလိုမှမဟုတ်ရင် ဦး တည်ရာလမ်းကြောင်းမတည်ရှိလို့ဖိုင်ပျက်သွားနိုင်တယ်။ zip file ၏ entry တစ်ခုချင်းစီကိုဖတ်ရန် file_exists () နှင့် mkdir () နှင့် mkdir () ကို ပေါင်းစပ်ရန်ဤဆောင်းပါးသည် file_exists () နှင့် Mkdir () ကိုပေါင်းစပ်ပြီး File_exists () နှင့် Mkdir () ကိုပေါင်းစပ်ပါကမိတ်ဆက်ပေးလိမ့်မည်။
သင်၏ PHP ပတ် 0 န်းကျင်သည် zip extens ည့်သည် zip extensed ရှိကြောင်းသေချာပါစေ။ အောက်ပါကုဒ်ကို detect လုပ်ရန်သင်အသုံးပြုနိုင်သည်။
<?php
if (!class_exists('ZipArchive')) {
die('Zip extension ကိုဖွင့်မရပါ');
}
?>
အောက်ပါအချက်များသည် zip fats များမှဖိုင်များနှင့်လမ်းညွှန်များကိုဖတ်ရှုခြင်းနှင့် directory struction ကိုအလိုအလျောက်ဖန်တီးခြင်းကိုအကောင်အထည်ဖော်သည့်အပြည့်အ 0 နမူနာကုဒ်ဖြစ်သည်။
<?php
$zipPath = 'example.zip'; // ZIP ဖိုင်လမ်းကြောင်း
$extractTo = 'output/'; // လမ်းညွှန်ကို unzip
$zip = zip_open($zipPath);
if (!is_resource($zip)) {
die('ဖွင့်လို့မရဘူး ZIP စာချုပ်စာတမ်း');
}
while ($entry = zip_read($zip)) {
$entryName = zip_entry_name($entry);
$fullPath = $extractTo . $entryName;
// directory လမ်းကြောင်းကိုရယူပါ
$dir = dirname($fullPath);
// အလိုအလျောက်လမ်းညွှန်များဖန်တီးပါ
if (!file_exists($dir)) {
mkdir($dir, 0777, true);
}
// 如果是စာချုပ်စာတမ်း,အကြောင်းအရာကိုဖတ်ပြီးရေးပါ
if (zip_entry_open($zip, $entry, "r")) {
$content = zip_entry_read($entry, zip_entry_filesize($entry));
file_put_contents($fullPath, $content);
zip_entry_close($entry);
}
}
zip_close($zip);
?>
zip_open ()
Zip file တစ်ခုကိုဖွင့်ပြီးအရင်းအမြစ်လက်ကိုင်ကိုပြန်ပို့လေ့ရှိသည်။
zip_read () နှင့် zip_entry_name ()
compressed package တစ်ခုမှ zip_read () မှ entries များရှိ entries များကိုဖတ်ပါ။ ထို့နောက် entry ကိုလမ်းကြောင်းသို့သွားရန် Zip_entry_name () () ကိုသုံးပါ။
Dirname () Extract Directory လမ်းကြောင်း ၎င်းသည်ဖိုင်တစ်ခုသို့မဟုတ်လမ်းညွှန်တစ်ခုဖြစ်စေ, လမ်းကြောင်းအပိုင်းကိုထုတ်ယူရန် Dirname () ကိုသုံးပါ။ ထို့နောက် directory တည်ရှိမလားစစ်ဆေးပါ။
File_exists () ကို Mkdir နှင့် တွဲဖက်. အသုံးပြုသည်။
File_exists () သည်လမ်းညွှန်တည်ရှိမှုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။
Mkdir () သည် Multilevel directory များကိုပြန်လည်ပြင်ဆင်ရန် True Set True Set True to Thirty Parameter ကိုအသုံးပြုသည်။
ဖိုင်အကြောင်းအရာကိုရေးပါ အကယ်. လက်ရှိ entry သည်ဖိုင်တစ်ခုဖြစ်ပါက၎င်းကိုဖွင့ ်. ဖတ်ခြင်းနှင့် ဦး တည်ရာလမ်းကြောင်းသို့စာဖြင့်ရေးသားထားသည်။
http://m66.net/files/Archive.zip မှ compressed package တစ်ခုကိုသင် download လုပ်ပါ။ decompression ပြီးနောက်သင်မူရင်းဖွဲ့စည်းပုံကိုဆက်လက်ထိန်းသိမ်းထားလိုသည်။ $ zippath ကို ပြုပြင်ရန်သာလိုအပ်သည်။
$zipPath = 'http://m66.net/files/archive.zip'; // မှတ်သား:zip_open တိုက်ရိုက်အသုံးပြုမှုကိုမပံ့ပိုးပါ URL,ဒေသခံ area ရိယာကိုဒေါင်းလုပ်လုပ်ရန်လိုအပ်သည်
ဖိုင်ကိုဒေသအလိုက်သိမ်းဆည်းရန် file_get_contontents () file_put_contense () ကို သုံးနိုင်သည်။
$tempZip = 'temp_archive.zip';
file_put_contents($tempZip, file_get_contents('http://m66.net/files/archive.zip'));
ထို့နောက် $ zippath $ tempzip နှင့်အတူအစားထိုးပါ။
zip_read () , file_exists () နှင့် Mkdir () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်လမ်းကြောင်းမရှိသောအမှားများကိုစိတ်ပူစရာမလိုဘဲ zip file content protection ဖန်တီးမှုကိုအလိုအလျောက်ထုတ်ယူခြင်းကိုထိရောက်စွာအကောင်အထည်ဖော်နိုင်သည်။ ဤနည်းလမ်းသည်အထူးသဖြင့်ရှုပ်ထွေးသော directory အဆောက်အအုံများနှင့်အတူ decompressing decompressing zip ဖိုင်များနှင့်အတူ decompressing decompressing files များ, script အားကြံ့ခိုင်ခြင်းနှင့်အသုံးဝင်မှုကိုတိုးတက်အောင်လုပ်ခြင်းအတွက်သင့်လျော်သည်။