PHP တွင် Zip ဖိုင်များကိုလုပ်ဆောင်သောအခါ Zip_read function ကို Zip file ရှိဖိုင်တိုင်းကိုဖတ်ရန်အသုံးပြုနိုင်သည်။ ဤလုပ်ဆောင်မှုမှတစ်ဆင့်ကျွန်ုပ်တို့သည်ဇစ်ဖိုင်ရှိအကြောင်းအရာများကိုတစ် ဦး တည်းဖြင့်ဖတ်နိုင်ပြီးစာဝှက်ခြင်းသို့မဟုတ် cache စစ်ဆင်ရေးကဲ့သို့သောဖတ်အကြောင်းအရာကိုယာယီပြုလုပ်နိုင်သည်။ ဤဆောင်းပါးသည် zip_read လုပ်ဆောင်မှုနှင့်ပေါင်းစပ်ပြီးဤလုပ်ဆောင်မှုများကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါမည်။
Zip_Read function ကိုအသုံးမပြုခင် PHP ကို install လုပ်ပြီး zip extension ကို enable လုပ်ထားကြောင်းသေချာစေရန်လိုအပ်သည်။ သင်စစ်ဆေးနိုင်သည်
<?php
if (class_exists('ZipArchive')) {
echo "Zipextension ကို enabled";
} else {
echo "ကျေးဇူးပြု. enable လုပ်ပါZipတိုးချဲ့";
}
?>
Zip_read function ကို ZIP အရင်းအမြစ်တစ်ခု၏နောက်စာရင်းကိုဖတ်ရန်အသုံးပြုသည်။ Zip_open နှင့် Zip_entry_Read နှင့် တွဲဖက်. , ဖိုင်များအားလုံးကို zip file ထဲတွင် travers များကိုဖြတ်နိုင်သည်။
ပုံမှန်အသုံးပြုမှုဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
zip_entry_open($zip, $entry);
$content = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
// ဒီမှာအဆင်ပြေပါတယ်$contentအပြောင်းအလဲနဲ့လုပ်ဆောင်,ဥပမာအားဖြင့်, encryption သို့မဟုတ် cache ကို
}
zip_close($zip);
}
?>
ကျွန်ုပ်တို့ဖတ်ရှုသည့်အတိုင်းရိုးရှင်းသော Aes encryption ကို encryption လုပ်ချင်သောဆိုပါစို့နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
$cacheDir = '/tmp/zip_cache/';
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0755, true);
}
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
$cacheFile = $cacheDir . md5($name) . '.cache';
if (file_exists($cacheFile)) {
$content = file_get_contents($cacheFile);
} else {
zip_entry_open($zip, $entry);
$content = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
file_put_contents($cacheFile, $content);
}
// ဒီမှာ$contentဒါက cached အကြောင်းအရာဖြစ်ပါတယ်,အပြောင်းအလဲနဲ့ဆက်လက်နိုင်ပါတယ်
}
zip_close($zip);
}
?>