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.";
}
?>
ကျွန်ုပ်တို့သည်ဖြတ်သန်းနေစဉ်အတွင်းလက်ရှိ 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 စနစ်ဖိုင်များကိုပြုပြင်ခြင်းနှင့်ကုဒ်ကြံ့ခိုင်ခြင်းနှင့်ထိရောက်မှုကိုတိုးတက်အောင်ပြုလုပ်ခြင်းကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။