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 ကိုအသုံးပြုရန်အသေးစိတ်မိတ်ဆက်ပေးရန်နမူနာကုဒ်ကိုပေါင်းစပ်ပါလိမ့်မည်။
Zip ဖိုင်များအတွက် entries တွေကိုဖိုင်များနှင့်လမ်းညွှန်နှစ်ခုလုံးပါ 0 င်ပြီး directory entries တွေကိုများသောအားဖြင့်အဆုံးသတ်သည်။ roment_read () ကို zip_read () ကို ပြန်ပို့ ပါ။ ပုံမှန် decompression စဉ်အတွင်းဖိုင်၏သက်ဆိုင်ရာလမ်းညွှန်ကိုသာဖန်တီးပါကသင်သာသက်ဆိုင်ရာလမ်းညွှန်များကိုသာဖန်တီးပါကအချည်းနှီးသော directory entries များကိုမလုပ်ဆောင်ပါနှင့်, အချည်းနှီးသောလမ်းညွှန်ကိုလျစ်လျူရှုလိမ့်မည်။
ဤနေရာတွင် 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);
?>
Directory Entries တွေကိုဆုံးဖြတ်ပါ ။ zip_entry_name () ကို သုံးပါ ။
အချည်းနှီးသော directory တစ်ခုဖန်တီးပါ ။ လမ်းညွှန်ရေးရာ 0 င်ကွက်ကိုတွေ့သောအခါသက်ဆိုင်ရာလမ်းညွှန်ကိုတိုက်ရိုက်ဖန်တီးပါ။
ဖိုင်တစ်ခုနှင့် 4 င်း၏မိဘလမ်းညွှန်ကိုဖန်တီးပါ ။ File Entries များအတွက်, မိဘလမ်းညွှန်များသည်ပထမ ဦး ဆုံးတည်ရှိပြီးဖိုင်ပါအကြောင်းအရာများကိုရေးပါ။
ခွင့်ပြုချက်များနှင့် recursive creation : Mkdir () တတိယမြောက် pareter သည် မှန်ကန်ရန် နှင့်ပြန်လည်ထူထောင်ရန်သတ်မှတ်ထားသည်။
PHP zip လုပ်ဆောင်ချက်များကိုအသေးစိတ်မှတ်တမ်းများပိုမိုများပြားရန်အတွက်တရားဝင်လက်စွဲကိုဖတ်ရှုပါ။