လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> file_exists () နှင့် mkdir () နှင့် mkdir () ကိုအလိုအလျောက်ဖန်တီးခြင်းအတွက်ဖန်တီးရန် Zip_Read function ကိုမည်သို့အသုံးပြုရမည်နည်း။

file_exists () နှင့် mkdir () နှင့် mkdir () ကိုအလိုအလျောက်ဖန်တီးခြင်းအတွက်ဖန်တီးရန် Zip_Read function ကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-06-12

အထူးသဖြင့်လူပေါင်းစုံ directory ဖွဲ့စည်းပုံပါ 0 င်သော compressed package ကို decompress လုပ်သည့်အခါ compressed directory struction တစ်ခုဖြစ်လာသည့်အချိန်သည်အလွန်အရေးကြီးသောခြေလှမ်းတစ်ခုဖြစ်သည်။ ဒီလိုမှမဟုတ်ရင် ဦး တည်ရာလမ်းကြောင်းမတည်ရှိလို့ဖိုင်ပျက်သွားနိုင်တယ်။ zip file ၏ entry တစ်ခုချင်းစီကိုဖတ်ရန် file_exists () နှင့် mkdir () နှင့် mkdir () ကို ပေါင်းစပ်ရန်ဤဆောင်းပါးသည် file_exists () နှင့် Mkdir () ကိုပေါင်းစပ်ပြီး File_exists () နှင့် Mkdir () ကိုပေါင်းစပ်ပါကမိတ်ဆက်ပေးလိမ့်မည်။

1 ။ လိုအပ်ချက်

သင်၏ PHP ပတ် 0 န်းကျင်သည် zip extens ည့်သည် zip extensed ရှိကြောင်းသေချာပါစေ။ အောက်ပါကုဒ်ကို detect လုပ်ရန်သင်အသုံးပြုနိုင်သည်။

 <?php
if (!class_exists('ZipArchive')) {
    die('Zip extension ကိုဖွင့်မရပါ');
}
?>

2 ။ နမူနာကုဒ်ခွဲခြမ်းစိတ်ဖြာခြင်း

အောက်ပါအချက်များသည် 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);
?>

3 ။ အသေးစိတ်ဖော်ပြချက်

  1. zip_open ()
    Zip file တစ်ခုကိုဖွင့်ပြီးအရင်းအမြစ်လက်ကိုင်ကိုပြန်ပို့လေ့ရှိသည်။

  2. zip_read () နှင့် zip_entry_name ()
    compressed package တစ်ခုမှ zip_read () မှ entries များရှိ entries များကိုဖတ်ပါ။ ထို့နောက် entry ကိုလမ်းကြောင်းသို့သွားရန် Zip_entry_name () () ကိုသုံးပါ။

  3. Dirname () Extract Directory လမ်းကြောင်း ၎င်းသည်ဖိုင်တစ်ခုသို့မဟုတ်လမ်းညွှန်တစ်ခုဖြစ်စေ, လမ်းကြောင်းအပိုင်းကိုထုတ်ယူရန် Dirname () ကိုသုံးပါ။ ထို့နောက် directory တည်ရှိမလားစစ်ဆေးပါ။

  4. File_exists () ကို Mkdir နှင့် တွဲဖက်. အသုံးပြုသည်။

    • File_exists () သည်လမ်းညွှန်တည်ရှိမှုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသည်။

    • Mkdir () သည် Multilevel directory များကိုပြန်လည်ပြင်ဆင်ရန် True Set True Set True to Thirty Parameter ကိုအသုံးပြုသည်။

  5. ဖိုင်အကြောင်းအရာကိုရေးပါ အကယ်. လက်ရှိ entry သည်ဖိုင်တစ်ခုဖြစ်ပါက၎င်းကိုဖွင့ ်. ဖတ်ခြင်းနှင့် ဦး တည်ရာလမ်းကြောင်းသို့စာဖြင့်ရေးသားထားသည်။

4 ။ လက်တွေ့ဇာတ်လမ်းဥပမာ

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 နှင့်အတူအစားထိုးပါ။

5 ။ အကျဉ်းချုပ်

zip_read () , file_exists () နှင့် Mkdir () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်လမ်းကြောင်းမရှိသောအမှားများကိုစိတ်ပူစရာမလိုဘဲ zip file content protection ဖန်တီးမှုကိုအလိုအလျောက်ထုတ်ယူခြင်းကိုထိရောက်စွာအကောင်အထည်ဖော်နိုင်သည်။ ဤနည်းလမ်းသည်အထူးသဖြင့်ရှုပ်ထွေးသော directory အဆောက်အအုံများနှင့်အတူ decompressing decompressing zip ဖိုင်များနှင့်အတူ decompressing decompressing files များ, script အားကြံ့ခိုင်ခြင်းနှင့်အသုံးဝင်မှုကိုတိုးတက်အောင်လုပ်ခြင်းအတွက်သင့်လျော်သည်။