PHP တွင် Hash_update_stream () function သည်အထူးသဖြင့်ကြီးမားသောဒေတာစီးဆင်းမှုများအတွက်ဆေးကုသမှုခံယူရန်အတွက် hash တန်ဖိုးများကိုအဆင့်ဆင့်အဆင့်မြှင့်တင်ရန်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ လုပ်ဆောင်ချက်သည်ကွဲပြားခြားနားသောအခြေအနေများတွင်တိကျစွာနှင့်တိတိကျကျအလုပ်လုပ်နိုင်ကြောင်းသေချာစေရန်ထိရောက်သောစမ်းသပ်ခြင်းလုပ်ဆောင်ရန်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည် hash_update_stram () function ကိုမည်သို့ထိထိရောက်ရောက်စစ်ဆေးနိုင်ကြောင်းမိတ်ဆက်ပေးပြီးအလိုအလျောက်စစ်ဆေးသည့် script တစ်ခု၏ဥပမာတစ်ခုပါရှိသည်။
Hash_update_Stream () function သည် hash တန်ဖိုးများကို update လုပ်ရန်အသုံးပြုသော PHP တွင်အသုံးပြုသော function တစ်ခုဖြစ်ပြီး၎င်းကို hash_init () နှင့် hash_final () နှင့်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှုသည်ကျွန်ုပ်တို့အားဖိုင်သို့မဟုတ်အခြားစီးသည့်အရင်းအမြစ်ကဲ့သို့သောအချက်အလက်များစီးဆင်းမှုကိုခြေလှမ်းတစ်ဆူငွေတွက်ချက်မှုများကိုပြုလုပ်ရန်ခွင့်ပြုသည်။
သဒ္ဒါ:
hash_update_stream(resource $context, resource $stream, int $length = 8192): bool
$ Context : hash အခြေအနေကို hash_init () function မှတဆင့်ဖန်တီးခဲ့သည်။
$ stream : ဖိုင်, မှတ်ဉာဏ်စီးစသဖြင့်အသုံးပြုနိုင်သည့်ထိရောက်သောစီးဆင်းမှုအရင်းအမြစ်တစ်ခု
$ အရှည် - စာဖတ်နှုန်းအများဆုံးစီးဆင်းမှုအများဆုံးအရေအတွက်, default သည် 8192 bytes ဖြစ်သည်။
hash_update_stream () ကို စမ်းသပ်ခြင်း၏အဓိကရည်ရွယ်ချက်မှာအခြေအနေအမျိုးမျိုးတွင်၎င်း၏မှန်ကန်မှုနှင့်စွမ်းဆောင်ရည်ကိုသေချာစေရန်ဖြစ်သည်။ ၎င်းတွင် -
function ကိုမတူညီသောအရွယ်အစား၏ input ကိုကိုင်တွယ်နိုင်အောင်သေချာစေပါ။
မှတ်ဉာဏ်အသုံးပြုမှုနှင့်စွမ်းဆောင်ရည်များတွင်ကောင်းစွာလုပ်ဆောင်သေချာပါစေ။
hash တန်ဖိုးကိုကွဲပြားခြားနားသော stream အကြောင်းအရာနှင့်အခြေအနေများအောက်တွင်မှန်ကန်စွာတွက်ချက်ပါ။
hash_update_stream ကိုစမ်းသပ်ရန် () ကျွန်ုပ်တို့သည်အောက်ပါနည်းဗျူဟာကိုကျင့်သုံးနိုင်သည်။
အခြေခံစမ်းသပ်မှု - function ကို function ကိုမှန်ကန်စွာမွမ်းမံနိုင်မလားစစ်ဆေးပါ။
ဖိုင်ကြီးစစ်ဆေးခြင်း - ဖိုင်ကြီးများသို့မဟုတ်ကြီးမားသောအချက်အလက်များစီးဆင်းမှုများ၏လုပ်ဆောင်မှုစွမ်းရည်များကိုစစ်ဆေးပါ။
နယ်နိမိတ်စမ်းသပ်ခြင်း - ဥပမာအားဖြင့်, အချည်းနှီးသောစီးဆင်းမှု, အလွန်သေးငယ်သောစမ်းချောင်းတစ်ခုသို့မဟုတ်မျှော်လင့်ထားသည့်အရွယ်အစားထက်ကျော်လွန်သောဒေတာစီးကိုစစ်ဆေးပါ။
တစ်ပြိုင်တည်းစမ်းသပ်ခြင်း - လိုအပ်ပါက function ၏တည်ငြိမ်မှုကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုများတွင်စစ်ဆေးပါ။
အောက်တွင်ဖော်ပြထားသောရိုးရှင်းသော PHP Automated Test Sign သည် Hash_update_stream () function ၏အခြေခံလုပ်ဆောင်နိုင်စွမ်းနှင့်စွမ်းဆောင်ရည်ကိုစစ်ဆေးရန်အသုံးပြုသောရိုးရှင်းသော PHP Automated Test Script ဖြစ်သည်။
<?php
// တစ် ဦး hashing algorithm ကိုသတ်မှတ်
$algorithm = 'sha256';
// File Path ကိုစမ်းသပ်ပါ(စမ်းသပ်မှုဖိုင်တစ်ခုရှိသည်ဟုယူဆပါ)
$filePath = '/path/to/testfile.txt';
// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init($algorithm);
// ဖိုင်စီးကိုဖွင့်ပါ
$stream = fopen($filePath, 'rb');
if (!$stream) {
die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}
// တဖြည်းဖြည်း hash တန်ဖိုးကို update
while (!feof($stream)) {
hash_update_stream($context, $stream, 8192);
}
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$hash = hash_final($context);
// ရလဒ်ရလဒ်
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $hash . PHP_EOL;
// စီးကိုပိတ်ပါ
fclose($stream);
// အလိုအလျောက်စမ်းသပ်ဥပမာများ - နယ်နိမိတ်အခြေအနေများ
function testEmptyStream($algorithm) {
$context = hash_init($algorithm);
$stream = fopen('php://memory', 'rb'); // အချည်းနှီးသောမှတ်ဉာဏ်စီး
hash_update_stream($context, $stream);
$hash = hash_final($context);
echo "အချည်းနှီးသောစီး၏ hash တန်ဖိုး: " . $hash . PHP_EOL;
}
function testLargeStream($algorithm, $filePath) {
$context = hash_init($algorithm);
$stream = fopen($filePath, 'rb');
$startTime = microtime(true);
while (!feof($stream)) {
hash_update_stream($context, $stream, 8192);
}
$hash = hash_final($context);
$endTime = microtime(true);
echo "ကြီးမားသောဖိုင်များ၏ hash တန်ဖိုး: " . $hash . PHP_EOL;
echo "အပြောင်းအလဲနဲ့အချိန်: " . ($endTime - $startTime) . " စက်ဏန့်" . PHP_EOL;
fclose($stream);
}
// စမ်းသပ်မှုကို run ပါ
testEmptyStream($algorithm);
testLargeStream($algorithm, $filePath);
?>
အခြေခံစမ်းသပ်မှု -
ကျွန်ုပ်တို့သည် hash connext $ စကားစပ်ကို ပထမ ဦး ဆုံးအစဖွင့်ပြီး File Stream $ စီး ကိုဖွင့်ခြင်းဖြင့် Hash တန်ဖိုးကိုတဖြည်းဖြည်းချင်းအဆင့်မြှင့်တင်သည်။ ဖိုင်စီးမှ 8192 bytes များကိုဖတ်ပြီး hash ကိုတိုင်းမွမ်းမံပါ။ နောက်ဆုံးတွင် Hash_final () ကို နောက်ဆုံး hash တန်ဖိုးကိုပြန်ပို့ရန်အသုံးပြုသည်။
အလိုအလျောက်စမ်းသပ်ခြင်း - နယ်နိမိတ်အခြေအနေများ -
အဆိုပါ testemptystream () function ကိုအချည်းနှီးသောစီး၏ hash တန်ဖိုးကိုစမ်းသပ်သည်။ PHP: // မှတ်ဉာဏ် နှင့် Hash ကတဆင့်အချည်းနှီးသောမှတ်ဉာဏ်စီးဆင်းမှုကိုဖန်တီးပါ။
အလိုအလျောက်စစ်ဆေးခြင်း - ဖိုင်အမျိုးအစားကြီးတစ်ခုမှာ -
TestlarGeamream () function သည်ဖိုင်ကြီးတစ်ခု၏ hash တွက်ချက်မှုကိုစစ်ဆေးသည်။ ၎င်းသည်ဖိုင်ကြီးတစ်ခုဖတ်ခြင်းနှင့်လုပ်ဆောင်မှု၏စွမ်းဆောင်ရည်ကိုအကဲဖြတ်ရန် hash အဆင့်ကိုတွက်ချက်ခြင်းဖြင့်အပြောင်းအလဲအတွက်အချိန်ကိုတွက်ချက်သည်။
ဤစစ်ဆေးမှုများပြုလုပ်သောအခါအောက်ပါရှုထောင့်များကိုဂရုပြုသင့်သည် -
Hash Vers ၏ရှေ့နောက်ညီညွတ်မှုများ - အလားတူ input ကို stream တစ်ခုအတွက် hash_update_stream () သည် အလားတူ Hash Value ကိုအမြဲတမ်းပြန်လာသင့်သည်။
စွမ်းဆောင်ရည် - ကြီးမားသောဖိုင်များသို့မဟုတ်အချက်အလက်များစီးဆင်းမှုများအတွက်လုပ်ဆောင်ချက်များသည်မှတ်ဥာဏ်လျှံသို့မဟုတ်ရေရှည်ပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်ထိရောက်စွာလုပ်ဆောင်သင့်သည်။
နယ်နိမိတ်အခြေအနေများ - အချည်းနှီးသောစမ်းချောင်းများ, အလွန်သေးငယ်သောဒေတာစီးများစသည်တို့သည်၎င်းတို့အားမှန်ကန်စွာကိုင်တွယ်နိုင်ပြီးမှန်ကန်သော hash တန်ဖိုးကိုမှန်ကန်စွာပြန်ပို့နိုင်ပြီးတရားဝင် hash တန်ဖိုးကိုပြန်ပို့နိုင်သည်။
အထက်ပါစမ်းသပ်မှုများမှတဆင့်သင်အမှန်တကယ်အသုံးပြုမှုတွင်တည်ငြိမ်ပြီးထိရောက်စွာထိရောက်စေရန် hash_update_stram () function ကိုမှန်ကန်စွာစစ်ဆေးနိုင်သည်။ အလိုအလျောက်စမ်းသပ်ခြင်း script များဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောအသုံးပြုမှုဆိုင်ရာအခြေအနေများကိုအလွယ်တကူတုန့်ပြန်နိုင်ပြီး ပိုမို. ပြည့်စုံသောစစ်ဆေးမှုများပြုလုပ်နိုင်သည်။
အထူးသဖြင့် PHP ဗားရှင်းသို့မဟုတ် code ပြောင်းခြင်းကိုမွမ်းမံသည့်အခါဤစစ်ဆေးမှုများကိုပုံမှန်လုပ်ဆောင်သည်ကိုသေချာအောင်လုပ်ပါ။