PHP တွင်အထွေထွေဖြစ်စဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$zip = zip_open("example.zip");
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
echo "Name: " . zip_entry_name($entry) . "\n";
if (zip_entry_open($zip, $entry, "r")) {
$contents = zip_entry_read($entry, 1024);
echo "Content: " . $contents . "\n";
zip_entry_close($entry);
}
}
zip_close($zip);
}
အထက်ဖော်ပြပါကုဒ်သည်တရားဝင် PHP စာရွက်စာတမ်းများကပုံမှန်အသုံးပြုမှုဖြစ်သည်။ ၎င်းသည်အခြေအနေများစွာတွင်ကောင်းမွန်စွာအလုပ်လုပ်သည်, သို့သော်အနည်းငယ်သောရှုပ်ထွေးမှုအနည်းငယ်သာသို့မဟုတ်အကြောင်းအရာသည်အရွယ်အစားထက်ကျော်လွန်နေသရွေ့ပြ problem နာပေါ်ပေါက်လာသည်။
အကြောင်းအရာကိုမဖတ်နိုင်ပါ ။ Zip_entry_Read () သည် အချည်းနှီးသော string ကိုပြန်ပို့သည်။
အချို့သောဖိုင်များကိုစာဖတ်ခြင်းမှတစ်ဆင့်တစ်ဝက်ကြားဖြတ်သည် - တစ်စိတ်တစ်ပိုင်းအကြောင်းအရာများကိုသာဖတ်နိုင်သည်။
အမှားတစ်ခုကိုသတင်းပို့ပါ ။
ဖတ်ရန်အမိန့်သည်ရှုပ်ထွေးသည် ။
ဤပြ problems နာများမှာတူညီသောအရာတစ်ခုရှိသည်။ ဤပြ problem နာသည် Zip file ကိုယ်နှိုက်တွင်မရှိခဲ့ပါ,
zip_read () သည်မရှိမဖြစ်လိုအပ်သော ITERATION ဖြစ်သည်။ အကယ်. သင်သည် Next_read ( ဥပမာအားဖြင့်စာဖတ်ခြင်းမပြုမီ) (ဥပမာ, စာဖတ်ခြင်းကိုမဖတ်မီ) သင်ခန်းစာယူမှုလုပ်ငန်းစဉ်အတွင်း (ဥပမာ,
Zip_Ementry_Read () သည် ဒေတာအားလုံးကိုတစ်ပြိုင်နက်တည်းဖတ်ရှုလိမ့်မည်ဟုမအာမခံနိုင်ပါ။
၎င်းသည်ဤဆောင်းပါး၏အဓိကအချက်ဖြစ်သည်။ Zip_entry_Read () သည် zip_read () ကို လက်ရှိထိန်းသိမ်းထားသည့် 0 င်ပိုင်အခြေအနေပေါ်မူတည်သည်။ Zip_Eread () () zip_entry_Read () (အခြားယုတ္တိရှိဌာနခွဲတွင်ပင်) ဟုခေါ်သည့်အခါ ()) ဟုခေါ်ဆိုပါကယခင်အပြုအမူများကိုပြတ်တောက်သွားလိမ့်မည်။
လက်ရှိ zip_read () ကို မထည့်ပါနှင့်, လက်ရှိ entry entry content ကိုမဖတ်ပါကဖတ်ပါ။
while ($entry = zip_read($zip)) {
zip_entry_open($zip, $entry, "r");
$content = "";
while ($data = zip_entry_read($entry, 1024)) {
$content .= $data;
}
echo $content;
zip_entry_close($entry);
}
အချို့သောဇစ်ဖိုင်များသည်စံသတ်မှတ်ထားသောကိရိယာများဖြင့်ချုံ့ခြင်းနှင့်မမှန်အထောက်အပံ့များပါ 0 င်နိုင်သည်။ သမာဓိရှိရန်သမာဓိစောင့်သိရန် isReadable () နည်းလမ်းနှင့်ပူးပေါင်းရန် Ziparchive class ကိုအသုံးပြုရန်အကြံပြုသည်။
$zip = new ZipArchive();
if ($zip->open('example.zip') === TRUE) {
// အတည်ပြုယုတ္တိဗေဒ
$zip->close();
}
Zip_open () ကဲ့သို့သောလုပ်ဆောင်ချက်များသည်အသုံးပြုရလွယ်ကူပြီးအသုံးပြုရလွယ်ကူသည်, ၎င်းတို့ကိုစောစီးစွာ စမ်းသပ်ခြင်း (သို့မဟုတ်အကြံဥာဏ်မယူပါ) မှတ်မိခြင်း,
$zip = new ZipArchive();
if ($zip->open('example.zip') === TRUE) {
for ($i = 0; $i < $zip->numFiles; $i++) {
$entryName = $zip->getNameIndex($i);
echo "File: " . $entryName . "\n";
$stream = $zip->getStream($entryName);
if ($stream) {
while (!feof($stream)) {
echo fread($stream, 1024);
}
fclose($stream);
}
}
$zip->close();
}
ဤနည်းလမ်းသည်ပိုမိုထိရောက်စွာသာမက zip_entry_Read () ပြ problem နာမရှိပါ။
zip_read () နှင့် zip_entry_Read ()) အတူတကွအသုံးပြုသောအခါမကြာခဏဖြစ်ပေါ်လေ့ရှိသည်။ သငျသညျအမိန့်နှင့်စည်းချက်စည်းလုံးညီညွတ်မှုကိုဖတ်ရှုခြင်းအတွက်သတိထားခြင်းမရှိပါက, သင်ယုတ္တိမမှန်ရောဂါများကိုမှကျရောက်နေပြီ။ ZIP စစ်ဆင်ရေးအတွက်မြင့်မားနိုင်မှုလိုအပ်ချက်များနှင့်အတူမြင့်မားနိုင်မှုလိုအပ်ချက်များနှင့်အတူစီမံကိန်းများကိုဒီအခြေခံလုပ်ဆောင်ချက်များ၏ဤအစုအစား ဇစ်ကက်ဖာ အသုံးပြုမှုကို ဦး စားပေးသင့်ကြောင်းအကြံပြုသည်။
အကယ်. သင်သည် Zip_ * လုပ်ဆောင်ချက်မိသားစုကိုသုံးရန်လိုပါကဖတ်ရှုနိုင်ရန်အတွက်အမြဲတမ်းသေချာစေရန်, entry တစ်ခုစီ၏ contents ၏ contents ကိုဖတ်ရှုခြင်းနှင့် entry ကိုမပိတ်ဘဲနောက်လာမည့်စာဖတ်ခြင်းကိုရှောင်ကြဉ်ပါ။
Referendo စာရွက်စာတမ်း - https://www.php.net/manual/zh/Ref.zip.php