PHP, FCREK () နှင့် hash_update_stream () သည်ဖိုင်နှင့် hash တွက်ချက်မှုများကိုကိုင်တွယ်ရန်အရေးကြီးသောကိရိယာများဖြစ်သည်။ FESEEK () ဖိုင်ညွှန်ကြားချက်များကို သတ်သတ်မှတ်မှတ် တည်နေရာတစ်ခုသို့နေရာချထားရန်အသုံးပြုသည်။ ဖိုင်တစ်ခု၏တိကျသောအစိတ်အပိုင်းများကိုသာဖတ်လိုပါက၎င်းကိုပြုလုပ်လိုပါကဤလုပ်ဆောင်ချက်နှစ်ခုပေါင်းစပ်မှုသည်အလွန်အသုံးဝင်လိမ့်မည်။ ဤဆောင်းပါးသည်ဖိုင်တစ်ခု၏အစိတ်အပိုင်းတစ်ခုသာဖတ်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
ကျွန်ုပ်တို့တွင်ဖိုင်ကြီးတစ်ခုရှိပြီးဒေတာအပိုင်းအစတစ်ခုသာရှိသည်ဆိုပါစို့။ ဥပမာအားဖြင့်ဖိုင်တစ်ခု၏ပထမဆုံး 1000 bytes (သို့) ဖိုင်အတွင်းရှိပိတ်ပင်တားဆီးမှု။ ဖိုင်တစ်ခုလုံးကိုတိုက်ရိုက်ဖတ်ရန်နှင့် fseek () နှင့် hash_update_stream () ကိုအသုံးပြုခြင်းသည်ဖိုင်၏တိကျသောအစိတ်အပိုင်းများကိုထိရောက်စွာရယူနိုင်ရန်အတွက်ထိရောက်မှုမရှိပါ။
fseek () function ကိုဖိုင်ညွှန်ပြအနေအထားသတ်မှတ်ရန်အသုံးပြုသည်။ FESEK နှင့်အတူ () ဖိုင်သို့မဟုတ်အခြားနေရာများအစမှ Bytes မည်မျှထေမိသည်ကိုသင်သတ်မှတ်နိုင်သည်။ ဥပမာအားဖြင့်, Fseek ($ file 1000) သည် ဖိုင်ကို Pointer ကိုဖိုင် 1000 ပြည့်နေလိမ့်မည်။
Hash_Update_Stream () သည်တွက်ချက်မှုများအတွက် hash လုပ်ဆောင်ချက်များကို data streams များကို pass လုပ်ရန်အသုံးပြုသည်။ ဖိုင်များပြုပြင်ထုတ်လုပ်သည့်အခါ hash_update_stream () သည် ဖိုင်လက်ကိုင်ကိုလက်ခံပြီးစီးထဲရှိ Hash တန်ဖိုးကိုအသစ်ပြောင်းနိုင်သည်။ ဥပမာအားဖြင့် hash_update_stream ($ အခြေအနေ, $ file) သည် ဖိုင်တစ်ခုလုံးကိုဖတ်ပြီး hash value ကို update လုပ်နိုင်သည်။
File Pointer ၏တည်နေရာကိုရှာဖွေရန် FSEEK () ကို ပထမဆုံး အသုံးပြုရန်လိုအပ်သည်။ ဤနည်းအားဖြင့်ဖိုင်တစ်ခုလုံးကိုမဖတ်ဘဲဖိုင်တစ်ခု၏အပိုင်းအစတစ်ခုရှိသည်။
ပထမ ဦး စွာဖိုင်ကိုဖွင့်ပြီးဖတ်ရန်ပြင်ဆင်ရန်လိုအပ်သည်။
<?php
$file = fopen('example.txt', 'rb'); // binary mode တွင်ဖိုင်များကိုဖတ်ပါ
if (!$file) {
die("ဖိုင်ကိုဖွင့ ်. မရပါ!");
}
?>
ဖိုင်၏ byte 1000 မှဖတ်ရန်လိုသည်ဆိုပါစို့။ ၎င်းကိုရှာရန် fseek () ကို သုံးနိုင်သည်။
// ဖိုင်ကိုညွှန်ပြစက်ကိုရွှေ့ပါ1000နေပြည်တော်
fseek($file, 1000);
ဖိုင်ရှိလက်ရှိတည်နေရာ မှစတင်. content ၏ hash တန်ဖိုးကိုတွက်ချက်ရန် hash_update_stream () ကို သုံးနိုင်သည်။ ကျနော်တို့ sha256 algorithm ကိုသုံးပါဆိုပါစို့။
// တစ် ဦး hash အခြေအနေဖန်တီးပါ
$context = hash_init('sha256');
// လက်ရှိ pointer အနေအထားကနေစတင်ဖိုင်အပိုင်း၏ hash ကိုတွက်ချက်ပါ
hash_update_stream($context, $file);
// hash တန်ဖိုးကိုရယူပါ
$hash = hash_final($context);
echo "ဖိုင်အစိတ်အပိုင်းတစ်ခု၏ hash တန်ဖိုး: " . $hash;
?>
နောက်ဆုံးအနေဖြင့်ဖိုင်ကိုပိတ်ရန်မမေ့ပါနှင့်။
fclose($file);
FSEEK () နှင့် hash_update_stream ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဖိုင်၏တိကျသောအစိတ်အပိုင်းများကိုထိရောက်စွာဖတ်ရှုနိုင်ရန်နှင့် hash တို့ကိုဖြည့်ဆည်းပေးနိုင်သည်။ ဤနည်းလမ်းသည်ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့မထည့်သွင်းနိုင်သည့်ကြီးမားသောဖိုင်များကိုကိုင်တွယ်ရန်အထူးသဖြင့်သင့်လျော်သည်။
ဤချဉ်းကပ်မှု၏ပြောင်းလွယ်ပြင်လွယ်မှုသည်ဖိုင်တစ်ခု၏မည်သည့်နေရာတွင်မဆိုဖတ်ရန်သာမကဖိုင်အတွင်းရှိတိကျသော areas ရိယာများကိုကိုင်တွယ်ရန်အတွက်လည်းသင့်တော်သည်။
ဤဆောင်းပါးသည် FSEEK () နှင့် hash_update_stream () ဖိုင်၏သီးခြားအစိတ်အပိုင်းများကိုမည်သို့ပေါင်းစပ်ရမည်ကိုနားလည်ရန်မျှော်လင့်ပါသည်။ သင့်တွင်အခြားမေးခွန်းများသို့မဟုတ်ပိုမိုရှုပ်ထွေးသောလိုအပ်ချက်များရှိပါကကျွန်ုပ်အားမေးခွန်းများမေးရန်အခမဲ့ခံစားရပါ။