လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Zip_read function ကိုအသုံးပြုသည့်အခါ __macosx ကဲ့သို့သောတိကျသောဖိုင်များကိုကျွန်ုပ်မည်သို့ကျော်လွှားနိုင်မည်နည်း။

Zip_read function ကိုအသုံးပြုသည့်အခါ __macosx ကဲ့သို့သောတိကျသောဖိုင်များကိုကျွန်ုပ်မည်သို့ကျော်လွှားနိုင်မည်နည်း။

M66 2025-06-12

Zip ဖိုင်များကို PHP ကိုအသုံးပြုသောအခါ zip_read function သည် zip_read function သည် compressed package item တွင် file entries များကိုဖတ်ရန်အတွက်အသုံးပြုသော interface တစ်ခုဖြစ်သည်။ သို့သော်တစ်ခါတစ်ရံကျွန်ုပ်တို့သည် MacOS စနစ်သို့မဟုတ်အခြားလျှို့ဝှက်ဖိုင်များမှထုတ်လုပ်သော __Macosx လမ်းညွှန်ကဲ့သို့သောမလိုလားအပ်သောဖိုလ်ဒါများသို့မဟုတ်ဖိုင်များကိုကြုံတွေ့ရသည်။ ဤ entries များသည်များသောအားဖြင့်ကျွန်ုပ်တို့၏စီးပွားရေးယုတ္တိဗေဒကိုအဓိပ္ပာယ်မရှိပါ။ ဖိုင်ပြုပြင်ခြင်းလုပ်ငန်းစီးဆင်းမှုကိုပင် 0 င်ရောက်စွက်ဖက်ခြင်းဖြစ်နိုင်သည်။

ဤဆောင်းပါးသည် zip_read လုပ်ဆောင်မှုကိုအသုံးပြုသောအခါဤသီးခြားဖိုင်ရေးရန်အချက်အလက်များကိုမည်သို့စစ်ထုတ်ဝမ်းရမည်ကိုရှင်းပြပါမည်။

အခြေခံဥပမာများ

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

 <?php
$zipPath = 'example.zip';
$zip = zip_open($zipPath);

if ($zip) {
    while ($zipEntry = zip_read($zip)) {
        $entryName = zip_entry_name($zipEntry);
        echo "Found entry: $entryName\n";
    }
    zip_close($zip);
} else {
    echo "Failed to open ZIP file.";
}
?>

__macosx နှင့်အခြားသတ်မှတ်ထားသောဖိုလ်ဒါများသို့မဟုတ်ဖိုင်များ skip

ကျွန်ုပ်တို့သည်ဖြတ်သန်းနေစဉ်အတွင်းလက်ရှိ 0 င်ခွင့်အမည်ကိုဆုံးဖြတ်ရန်နှင့် __MACOSX နှင့်အလားတူမမှန်ကန်သော entries များမှစသောဖိုင်တွဲများကိုဖယ်ထုတ်ရန်လိုအပ်သည်။

ဤနေရာတွင်သော့ချက်မှာ PHP ၏ entry name ၏ရှေ့ဆက်ကိုရှာဖွေရန် PHP ၏ string function strpos ကို အသုံးပြုရန်ဖြစ်သည်။

 <?php
$zipPath = 'example.zip';
$zip = zip_open($zipPath);

if ($zip) {
    while ($zipEntry = zip_read($zip)) {
        $entryName = zip_entry_name($zipEntry);

        // ခုန်ကျော်သည် __MACOSX ဖိုင်တွဲထဲမှာ entries တွေကိုအားလုံး
        if (strpos($entryName, '__MACOSX/') === 0) {
            continue;
        }

        // 还可以ခုန်ကျော်သည်其他不想ကိုင်တွယ်ဖြေရှင်းသည်的隐藏စာချုပ်စာတမ်း,ဥပမာအားဖြင့် .DS_Store
        if (basename($entryName) === '.DS_Store') {
            continue;
        }

        // ပုံမှန်အပြောင်းအလဲနဲ့ကုဒ်
        echo "processing ဖိုင်များ: $entryName\n";

        // သင်ဖတ်ရှုခြင်းအတွက် entry ကိုဖွင့်နိုင်သည်,ဥပမာအားဖြင့်:
        if (zip_entry_open($zip, $zipEntry)) {
            $contents = zip_entry_read($zipEntry, zip_entry_filesize($zipEntry));
            // ကိုင်တွယ်ဖြေရှင်းသည် $contents,ဥပမာအားဖြင့်保存စာချုပ်စာတမ်း
            zip_entry_close($zipEntry);
        }
    }
    zip_close($zip);
} else {
    echo "ဖွင့်လို့မရဘူး ZIP စာချုပ်စာတမ်း";
}
?>

အကျဉ်းချုပ်

  • Zip entries တွေကိုဖတ်ဖို့ Zip_read ကို သုံးတဲ့အခါ zip encries တွေကိုဖတ်ဖို့နာမည်ကိုစစ်ဆေးပါ။

  • __ emacosx / __ _Macosx / နှင့်အတူစတင်ခြင်းရှိမရှိဆုံးဖြတ်ရန် Stropos ကို သုံးပါ။

  • တစ်ချိန်တည်းမှာပင် filtering ကိုဖိုင်အမည်များ (ဥပမာ .SDSTRAXTAX ) အတွက်ပြုလုပ်နိုင်သည်။

  • ၎င်းသည်အသုံးမကျသော MACOS စနစ်ဖိုင်များကိုပြုပြင်ခြင်းနှင့်ကုဒ်ကြံ့ခိုင်ခြင်းနှင့်ထိရောက်မှုကိုတိုးတက်အောင်ပြုလုပ်ခြင်းကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။