Hash_update_stream () သည် Hash တန်ဖိုးများကို update လုပ်ရန်အသုံးပြုသော PHP တွင်အလုပ်လုပ်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည် developer များကိုဖိုင်များသို့မဟုတ်အခြား streaming data seetsions များကို hash သို့ခွင့်ပြုသည့် hash extension ၏အစိတ်အပိုင်းဖြစ်သည်။ ဤလုပ်ဆောင်မှု၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
bool hash_update_stream ( resource $context , resource $stream [, int $length = 0 ] )
$ Context : hash_init () function မှဖန်တီးထားသော hash အခြေအနေတွင်အရင်းအမြစ်။
$ stream : input data များအတွက် stream အရင်းအမြစ်, များသောအားဖြင့် file stream ။
$ အရှည် : optional parameter သည်ဖတ်နိုင်သည့် stream ၏အရှည်ကိုသတ်မှတ်ခြင်း, default အချက်အလက်များဖတ်သည်ကိုညွှန်ပြသည်။
Hash_update_stream () ကိုအဓိကအားဖြင့်ဖိုင်များကဲ့သို့သောကြီးမားသောဒေတာစီးဆင်းမှုများကိုပြုလုပ်ရန်, အချက်အလက်တစ်ခုလုံးကိုမှတ်ဉာဏ်သို့မပို့ဆောင်ရန်ရှောင်ရှားရန်ဖြစ်သည်။
hash_update_stream () သည် မှားယွင်းသော အကြောင်းပြချက်များစွာရှိသည်။ မကြာခဏမေးလေ့ရှိသောမေးခွန်းများအရသိရသည်တ ဦး တည်းကိုစစ်ဆေးပါမည်။
အကယ်. 0 င်ရောက်လာသည့် $ စီးဆင်း အရင်းအမြစ်သည်မမှန်ကန်ပါက hash_update_stream () သည် မှားယွင်းသော ပြန်လာလိမ့်မည်။ ဘုံအခြေအနေများတွင်:
Stream ဖိုင်ကိုပွင့်ပွင့်လင်းလင်းမဖွင့်ပါ။ ဖိုင်လမ်းကြောင်းကမှားတယ်။
အဝင်စီးကိုပိတ်ထားသည်။
ဖိုင်စီးသည်ခွင့်ပြုချက်မလုံလောက်ပါ။ ၎င်းသည်ဖတ်ရန်မဖြစ်နိုင်ပါ။
ဖိုင်လမ်းကြောင်းမှန်ပေါ်ရှိ,
ဖိုင်ကိုအောင်မြင်စွာဖွင့်လှစ်နိုင်ကြောင်းနှင့်စမ်းချောင်းသည်မှန်ကန်ကြောင်းသေချာပါစေ။
Stream သည်မှန်ကန်မှုရှိမရှိစစ်ဆေးရန် IS_RESOurce () function ကိုသုံးပါ။
if (!is_resource($stream)) {
echo "Invalid stream resource.";
}
$ အရှည် parameter သည်မိနစ်ပိုင်းအတွင်းဖတ်ရှုသည့် bytes အရေအတွက်ကိုထိန်းချုပ်ရန်အသုံးပြုသည်။ အကယ်. Bytes အရေအတွက်သည်ဖိုင် ၏ အမှန်တကယ်အရွယ်အစားထက်ကျော်လွန်ပါကသို့မဟုတ်သတ်မှတ်ထားသည့်အရှည်သည်မသင့် လျော် ပါက,
ဘလော့ဂ်အားဖြင့်စာဖတ်ခြင်းကဲ့သို့သောသင့်လျော်သော $ အရှည် parameter ကိုဖြတ်သန်းကြိုးစားပါ။
Stream သည်ဒေတာ volume တွင်အလယ်အလတ်အမြင့်ဆုံးရှိပြီးမှတ်ဉာဏ်ပြည့်သို့မဟုတ်အခြားခြွင်းချက်များကိုရှောင်ရှားရန်သေချာစေပါ။
အကယ် . စီးဆင်းနေသောအမှားတစ်ခုဖြစ်သည့်အမှားတစ်ခုဖြစ်ပါက (ဥပမာ, ဖိုင်သည်သော့ခတ်နေစဉ်တွင်အိမ်ဆောက်ခြင်းသို့မဟုတ်စာဖတ်စဉ်တွင် ဟာ့ဒ်ဝဲ ပျက်ကွက်မှုဖြစ်ပေါ်သည်), ဘုံအခြေအနေများတွင်:
ကွန်ယက်စီးဆင်းမှုပြတ်တောက်။
ဖိုင်မလုံလောက်ဖိုင်များကိုမလုံလောက်ပါ။
Stream_get_Contentents () သို့မဟုတ်အရူးအမူး () သို့မဟုတ်အရူးအမူး () သို့မဟုတ် fread () သို့မဟုတ်အရူး) ကဲ့သို့သောအခြားနည်းလမ်းများကိုပုံမှန်ဖတ်ရှုနိုင်ရန်အတွက်စီးဆင်းမှုကိုတိုက်ရိုက်ဖတ်ရန်တိုက်ရိုက်ဖတ်ရှုပါ။
အကယ်. Hash အခြေအနေတွင် ( $ အခြေအနေ ) သည်မမှန်ကန်ပါက Hash_update_stream () သည် Hash Value ကိုမှန်ကန်စွာမွမ်းမံရန်ပျက်ကွက်နိုင်သည် ။
Hash_init () မှဖန်တီးထားသောအခြေအနေတွင်မှန်ကန်ကြောင်းသေချာစေရန်နှင့်မှားယွင်းစွာဖျက်ဆီးခြင်းသို့မဟုတ်ပိတ်ခြင်းမရှိသေးပါ။
အချို့သောဆေးကြောထားသော algorithms များသည်အထူးသဖြင့်စာဝှက်စနစ်နှင့်သက်ဆိုင်သော Hashing algorithms ကိုအသုံးပြုသောအခါ streaming data processing လုပ်ရန်သင့်တော်မည်မဟုတ်ပါ။ သတ်မှတ်ထားသော Hash algorithm သည် streaming data ကိုမထောက်ပံ့ပါက၎င်းအကောင်အထည်ဖော်မှုတွင်အမှားတစ်ခုရှိပါက၎င်းသည်ပျက်ကွက်မှုဖြစ်စေနိုင်သည်။
အသုံးပြုသော Hashing algorithm သည် မှန်ကန်သောနှင့် streaming updates များကိုထောက်ပံ့ရန်သေချာစေပါ ။
$context = hash_init('sha256');
Hash_update_stream () false fiss falm falm falm falm falm falm false လုပ်ပါ, အဆင့်ဆင့်ကိုစစ်ဆေးရန်အောက်ပါအဆင့်များကိုသင်လိုက်နာနိုင်သည်။
စီးဆင်းမှုအရင်းအမြစ်များ၏တရားဝင်မှုအတည်ပြုပါ
stream သည်မှန်ကန်မှုရှိမရှိစစ်ဆေးရန် is_Resource () ကို သုံးပါ။
ဖိုင်လမ်းကြောင်းမှန်ကန်ကြောင်းသေချာစေရန်နှင့်ဖိုင်ကိုလက်လှမ်းမီပါစေ။
hash အခြေအနေကိုအောင်မြင်စွာဖန်တီးနိုင်သလားစစ်ဆေးပါ
hash_init () ဖြင့်ဖန်တီးထားသော hash အခြေအနေကိုသေချာအောင်လုပ်ပါ။
ဒေတာစီးဆင်းမှုကိုစစ်ဆေးပါ
data stream ရရှိနိုင်ကြောင်းသေချာစေရန်အတွက် စမ်းချောင်း သို့မဟုတ်အခြားစီးဆင်းမှုကိုဖတ်ရှုခြင်းရှိမရှိစစ်ဆေးပါ။
အမှားမှတ်တမ်းကိုစစ်ဆေးပါ
MAREAM နှင့်ဆက်စပ်သောအမှားသတိပေးချက်များအတွက် PHP အမှားမှတ်တမ်းများကိုစစ်ဆေးသည်, Hash တွက်ချက်မှုများသို့မဟုတ်ခွင့်ပြုချက်များ
ကျိုးကြောင်း ဆီလျော်အရှည် parameteters ကိုသုံးပါ
ဖြစ်နိုင်လျှင်အချက်အလက်အလွန်အကျွံဖတ်ပါ, stream ကိုပိတ်ပင်တားဆီးမှုဖြင့်ဖတ်ရန်ကြိုးစားပါ,
ဤနေရာတွင် hash_update_stram () function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသောရိုးရှင်းသောဥပမာကုဒ်ဖြစ်သည်။
<?php
// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init('sha256');
// ဖိုင်စီးကိုဖွင့်ပါ
$file = fopen('example.txt', 'r');
if ($file) {
// ပိတ်ပင်တားဆီးမှုအားဖြင့် hash ပိတ်ပင်တားဆီးမှုကို update
while ($chunk = fread($file, 8192)) {
hash_update_stream($context, $chunk);
}
// နောက်ဆုံး hash တန်ဖိုးကိုတွက်ချက်
$hash = hash_final($context);
fclose($file);
echo "File hash: " . $hash;
} else {
echo "Failed to open file.";
}
?>
ဒီဥပမာမှာ File Contents တွေကိုပိတ်ပင်တားဆီးမှုဖြင့်ဖိုင်တွေကိုဖတ်ပြီး block လုပ်ပြီး hash context ကို update လုပ်ဖို့ hash_update_stream () ကို သုံး ပါ။ နောက်ဆုံးအနေဖြင့်ကျွန်ုပ်တို့သည် Hash_Final () မှတဆင့်နောက်ဆုံး hash တန်ဖိုးကိုရရှိသည်။
Hash_Update_stream () မှားယွင်းသော ပြန်လာခြင်းသည်များသောအားဖြင့် stream use, hash အခြေအနေတွင်ပြ a နာရှိသေးသည်ကိုဖော်ပြသည်။ streaming အရင်းအမြစ်များကိုစနစ်တကျပြ trouble နာများကိုစနစ်တကျဖြေရှင်းခြင်းအားဖြင့်ဖိုင်ခွင့်ပြုချက်, ဆေးကြောခြင်းနှင့်စာဖတ်ခြင်းလုပ်ငန်းစဉ်, ဖိုင်ကြီးများသို့မဟုတ် streaming data များကို processing လုပ်သည့်အခါစာဖတ်ခြင်း၏အရွယ်အစားကိုကျိုးကြောင်းဆီလျော်စွာထိန်းချုပ်ရန်လည်းအလွန်အရေးကြီးသည်။
အထက်ပါနည်းလမ်းများမှတစ်ဆင့် developer များကကြီးမားသောဖိုင်များပြုပြင်ထုတ်လုပ်သည့်အခါ hash တန်ဖိုးကိုတည်ငြိမ်ပြီးယုံကြည်စိတ်ချစွာတွက်ချက်မှုကိုသေချာစေနိုင်သည်။