လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> zip_read () function ကို သုံး. အချည်းနှီးသောလမ်းညွှန်များပြ problem နာကိုရှောင်ရှားရန် Zip_read () function ကို သုံး. အချည်းနှီးသောလမ်းညွှန်များပါ 0 င်သော zip ဖိုင်များကိုမည်သို့မှန်ကန်စွာ decompress လုပ်နည်း။

zip_read () function ကို သုံး. အချည်းနှီးသောလမ်းညွှန်များပြ problem နာကိုရှောင်ရှားရန် Zip_read () function ကို သုံး. အချည်းနှီးသောလမ်းညွှန်များပါ 0 င်သော zip ဖိုင်များကိုမည်သို့မှန်ကန်စွာ decompress လုပ်နည်း။

M66 2025-07-18

PHP မှ zip ဖိုင်များ processing လုပ်သည့်အခါ zip_read () function သည် zip file entries များကိုဖတ်ရှုခြင်းအတွက်ဘုံနည်းလမ်းဖြစ်သည်။ သို့သော်အချည်းနှီးသောလမ်းညွှန်ပါ 0 င်သော zip ဖိုင်ကို decompress လုပ်သည့်အခါ developer များစွာသည်ပျောက်ဆုံးနေသောအချည်းနှီးသောလမ်းညွှန်များကိုကြုံတွေ့ရလိမ့်မည်။ ဘာဖြစ်လို့လဲဆိုတော့အချည်းနှီးသော directory ကိုယ်နှိုက်တွင်ဖိုင်များမရှိပါ။ Zip_Read () ဖိုင်များကိုပုံမှန်အားဖြင့်ဖြတ်သန်းသည်နှင့် directory entries တွေကိုလျစ်လျူရှုထားပြီး directory entries တွေကိုလျစ်လျူရှုခြင်း,

ဤဆောင်းပါးသည်နမူနာကုဒ်ကို zip_read () function ကိုမှန်ကန်စွာခွဲခြားသတ်မှတ်ရန်အချည်းနှီးသောလမ်းညွှန်များကိုမဆုံးရှုံးစေရန်နှင့် decompressed file structure ကိုသေချာစေရန်နှင့် decompress-sunction ကိုအသုံးပြုရန်အသေးစိတ်မိတ်ဆက်ပေးရန်နမူနာကုဒ်ကိုပေါင်းစပ်ပါလိမ့်မည်။


1 ။ ပြ problem နာခွဲခြမ်းစိတ်ဖြာ

Zip ဖိုင်များအတွက် entries တွေကိုဖိုင်များနှင့်လမ်းညွှန်နှစ်ခုလုံးပါ 0 င်ပြီး directory entries တွေကိုများသောအားဖြင့်အဆုံးသတ်သည်။ roment_read () ကို zip_read () ကို ပြန်ပို့ ပါ။ ပုံမှန် decompression စဉ်အတွင်းဖိုင်၏သက်ဆိုင်ရာလမ်းညွှန်ကိုသာဖန်တီးပါကသင်သာသက်ဆိုင်ရာလမ်းညွှန်များကိုသာဖန်တီးပါကအချည်းနှီးသော directory entries များကိုမလုပ်ဆောင်ပါနှင့်, အချည်းနှီးသောလမ်းညွှန်ကိုလျစ်လျူရှုလိမ့်မည်။


2 ။ နမူနာကုဒ်သရုပ်ပြ

ဤနေရာတွင် Zip ဖိုင်များကိုမည်သို့ဖတ်ရမည်ကိုသရုပ်ပြသော PHP ဇာတိဇစ်လုပ်ဆောင်ချက်များကို အခြေခံ. ဥပမာတစ်ခုဖြစ်ပြီး directory များမှဖိုင်များကိုခွဲခြား။ အချည်းနှီးသောလမ်းညွှန်များကိုမှန်ကန်စွာဖန်တီးပါ။

 <?php
$zipPath = 'archive.zip'; // ZIP ဖိုင်လမ်းကြောင်း
$extractTo = 'output/';   // ပစ်မှတ် directory unzip

$zip = zip_open($zipPath);
if (!is_resource($zip)) {
    die("ဖွင့်လို့မရဘူး ZIP စာချုပ်စာတမ်း\n");
}

while ($entry = zip_read($zip)) {
    $entryName = zip_entry_name($entry);

    // directory entry ကိုရှိမရှိဆုံးဖြတ်ပါ,မှလမ်းညွှန်ရေးရန် '/' အဆုံး
    if (substr($entryName, -1) === '/') {
        // အချည်းနှီးသော directory ကိုဖန်တီးပါ
        $dirPath = $extractTo . $entryName;
        if (!is_dir($dirPath)) {
            mkdir($dirPath, 0755, true);
            echo "အချည်းနှီးသော directory ကိုဖန်တီးပါ:$dirPath\n";
        }
    } else {
        // စာချုပ်စာတမ်း条目,directory ပထမ ဦး ဆုံးတည်ရှိသေချာပါစေ
        $filePath = $extractTo . $entryName;
        $dir = dirname($filePath);
        if (!is_dir($dir)) {
            mkdir($dir, 0755, true);
        }

        // 读取စာချုပ်စာတမ်း内容并写入
        if (zip_entry_open($zip, $entry)) {
            $fp = fopen($filePath, 'w');
            while ($data = zip_entry_read($entry, 1024)) {
                fwrite($fp, $data);
            }
            fclose($fp);
            zip_entry_close($entry);
            echo "解压စာချုပ်စာတမ်း:$filePath\n";
        }
    }
}

zip_close($zip);
?>

3 ။ အဓိကအချက်များအကျဉ်းချုပ်

  • Directory Entries တွေကိုဆုံးဖြတ်ပါzip_entry_name () ကို သုံးပါ

  • အချည်းနှီးသော directory တစ်ခုဖန်တီးပါ ။ လမ်းညွှန်ရေးရာ 0 င်ကွက်ကိုတွေ့သောအခါသက်ဆိုင်ရာလမ်းညွှန်ကိုတိုက်ရိုက်ဖန်တီးပါ။

  • ဖိုင်တစ်ခုနှင့် 4 င်း၏မိဘလမ်းညွှန်ကိုဖန်တီးပါ ။ File Entries များအတွက်, မိဘလမ်းညွှန်များသည်ပထမ ဦး ဆုံးတည်ရှိပြီးဖိုင်ပါအကြောင်းအရာများကိုရေးပါ။

  • ခွင့်ပြုချက်များနှင့် recursive creation : Mkdir () တတိယမြောက် pareter သည် မှန်ကန်ရန် နှင့်ပြန်လည်ထူထောင်ရန်သတ်မှတ်ထားသည်။


4 ။ ဆက်စပ် links များ

PHP zip လုပ်ဆောင်ချက်များကိုအသေးစိတ်မှတ်တမ်းများပိုမိုများပြားရန်အတွက်တရားဝင်လက်စွဲကိုဖတ်ရှုပါ။