PHP တွင် Hash_update_stream () သည် hash တန်ဖိုးများကိုအသစ်ပြောင်းခြင်းအတွက်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်ဤလုပ်ဆောင်မှုကို PHP ဗားရှင်းအားလုံးတွင်အထူးသဖြင့် PHP ၏အဟောင်းများတွင်မထောက်ပံ့ပါ။ ဤလုပ်ဆောင်မှုကိုမပံ့ပိုးသောပတ်ဝန်းကျင်တစ်ခုတွင်အလားတူလုပ်ဆောင်ချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။ ဤဆောင်းပါးသည်သင့်အား hash_update_stream ကိုအစားထိုးရန်နည်းလမ်းများစွာကိုပေးလိမ့်မည်။
PHP ၏အဟောင်းများအတွက်သင် hash updates များကိုအကောင်အထည်ဖော်ရန် hash_init () နှင့် hash_update () လုပ်ဆောင်ချက်များကိုသုံးနိုင်သည်။ နှစ် ဦး စလုံးသည်တိုက်ရိုက် streaming ကိုမပေးနိုင်သော်လည်းဖိုင်စီးကိုလက်ဖြင့်ဖတ်ခြင်းနှင့် Hash တန်ဖိုးများကိုပိတ်ဆို့ခြင်းဖြင့် Hash_update_stream () ကဲ့သို့သော function ကိုဖန်တီးနိုင်သည်။
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$handle = fopen('file.txt', 'rb');
if ($handle === false) {
die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}
// hash အရာဝတ်ထုကိုအစပျိုး
$hash = hash_init('sha256');
// ဖိုင်များကိုဖတ်ပါ။
while (!feof($handle)) {
$chunk = fread($handle, 8192); // တစ်ခုချင်းစီကိုဖတ်ပါ 8KB အချက်များ
hash_update($hash, $chunk);
}
// ဖိုင်စီးကိုပိတ်ပါ
fclose($handle);
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
echo 'ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်:' . hash_final($hash);
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် file block ကို block ဖြင့်ဖတ်ပြီး hash via via () ကိုမွမ်းမံခြင်းဖြင့်ဖိုင်ပိတ်ပင်တားဆီးမှုကိုဖတ်ရန် ( ) file block ကို ဖတ်ရန်။ နောက်ဆုံးအနေဖြင့် Hash_Final () သည်နောက်ဆုံး hash ရလဒ်ကိုပြန်ပို့သည်။ ဤနည်းလမ်းသည် hash_update_stream () အဖြစ်တိုက်ရိုက်မဟုတ်သော်လည်း၎င်းသည် function မပါဘဲတူညီသောအကျိုးသက်ရောက်မှုကိုရရှိနိုင်မည်ဖြစ်သည်။
အခြားရွေးချယ်စရာတစ်ခုမှာဖိုင်စီး၏ contents ၏ contents ကို stream_get_contentents () function ကိုဖြတ်ပြီး function ကိုရယူပြီး hash value ကို hash_update () နှင့်အတူ update လုပ်ပါ။ ဤနည်းလမ်းသည်ဖိုင်ငယ်သေးသောအခြေအနေများသို့မဟုတ်ဖိုင်အရွယ်အစားကိုသိပြီးဖြစ်သောအခြေအနေများအတွက်သင့်တော်သည်။ ၎င်း၏အားသာချက်မှာ code သည် code ကိုအကောင်အထည်ဖော်ရန်ဖြစ်သည်, သို့သော်ကြီးမားသောဖိုင်များအတွက်မှတ်ဥာဏ်ပိုယူနိုင်သည်။
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$handle = fopen('file.txt', 'rb');
if ($handle === false) {
die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}
// ဖိုင်တစ်ခုလုံးကိုအကြောင်းအရာတစ်ခုလုံးကိုရယူပါ
$contents = stream_get_contents($handle);
// ဖိုင်စီးကိုပိတ်ပါ
fclose($handle);
// hash အရာဝတ်ထုကိုအစပျိုး
$hash = hash_init('sha256');
// update hash
hash_update($hash, $contents);
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
echo 'ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်:' . hash_final($hash);
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်ဖိုင်တစ်ခုလုံးကိုဖတ်ရန်နှင့် hash_update () ကိုဖတ်ရန် Stream_get_contontents () ကို အသုံးပြုသည်။ ဤနည်းလမ်းသည်ရိုးရှင်းသော်လည်းဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်ပြီးကြီးမားသောဖိုင်များနှင့်မသက်ဆိုင်ပါ။
အကယ်. သင်၏ PHP ပတ် 0 န်းကျင်တွင်သင် hash_update_stream () ကို မထောက်ပံ့ပါကသင်၏ PHP ပတ် 0 န်းကျင်တွင်ထိရောက်သော streaming update နည်းလမ်းကိုအသုံးပြုလိုပါကပြင်ပစာကြည့်တိုက်များသို့မဟုတ် extensions များကိုအသုံးပြုရန်စဉ်းစားနိုင်သည်။ ဥပမာအားဖြင့် Symfony ကဲ့သို့သောမူဘောင်များတွင်အချို့သောကိရိယာများသည်ပိုမိုရှုပ်ထွေးသော stream processing နှင့် hash update လုပ်ရိုးလုပ်စဉ်များကိုပြုလုပ်ပေးသည်။
<?php
// မိတ်ဆက်ခဲ့သည် Symfony stream processing tool ကိုအတန်း
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
// Custom Stream Studing Logic ကိုအသုံးပြုခြင်း
$fs = new Filesystem();
$hash = hash_init('sha256');
try {
// ပိတ်ပင်တားဆီးမှုအားဖြင့်ဖိုင် contents တွေကို block ဖတ်ပါ
$fs->readStream('file.txt', function($chunk) use ($hash) {
hash_update($hash, $chunk);
});
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
echo 'ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်:' . hash_final($hash);
} catch (IOExceptionInterface $e) {
echo 'အမှားတစ်ခုဖြစ်ပွားခဲ့သည်:' . $e->getMessage();
}
?>
ဒီဥပမာက symfony စာကြည့်တိုက်ကိုပိုပြီးပြောင်းလွယ်ပြင်လွယ်တဲ့ streaming ကိုဘယ်လိုပေါင်းစပ်ရမယ်ဆိုတာပြတယ်။ ဟုတ်ပါတယ်, သင် PHP build-in functions ၏အားနည်းချက်များကိုဖြည့်ဆည်းရန်သင်၏လိုအပ်ချက်များအရအခြား libraries များသို့မဟုတ်ကိရိယာများကိုသင်ရွေးချယ်နိုင်သည်။
အထက်ဖော်ပြပါနည်းလမ်းသည် PHP ၏အောက်ပိုင်းဗားရှင်းများဖြင့် streaming update ကိုအကောင်အထည်ဖော်နိုင်သော်လည်းအကောင်းဆုံးသောဖြေရှင်းချက်မှာသင်၏ PHP ဗားရှင်းကို Hash_update_stream () ကို ထောက်ပံ့သောဗားရှင်းသို့အဆင့်မြှင့်တင်ရန်ဖြစ်သည်။ PHP ကိုအဆင့်မြှင့်တင်ခြင်းသည်ကုဒ်လုံခြုံရေးနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်ကောင်းမွန်စေစဉ်နောက်ဆုံးပေါ် features များကိုသုံးနိုင်သည်။
PHP ကိုအဆင့်မြှင့်တင်နည်းကိုလေ့လာရန်အောက်ပါလင့်ခ်ကိုသင်ရည်ညွှန်းနိုင်သည်။
PHP တရားဝင်စာရွက်စာတမ်းများ
PHP ဗားရှင်းဒေါင်းလုပ်
Hash_update_stream () function သည် PHP တွင်အလွန်လက်တွေ့ကျသောအင်္ဂါရပ်တစ်ခုဖြစ်သည်။ သို့သော်သင်၏ PHP ဗားရှင်းသည်၎င်းကိုမထောက်ပံ့ပါကသင်၏ PHP ဗားရှင်းသည်၎င်းကိုမထောက်ခံပါက streaming hash updates များကိုနည်းလမ်းများစွာဖြင့်သင်ဆက်လက်လုပ်ဆောင်နိုင်သေးသည်။ Hash_init () နှင့် hash_update () ကိုအသုံးပြုသည်ဖြစ်စေ, ပြင်ပစာကြည့်တိုက်များနှင့်မိတ်ဆက်ပေးခြင်းဖြင့်ဤနည်းလမ်းများသည် function ကိုထိရောက်စွာအစားထိုးနိုင်သည်။ တစ်ချိန်တည်းမှာပင် PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ခြင်းသည်ကော်မတီ၏ရေရှည်လိုက်ဖက်မှုနှင့်လုံခြုံရေးကိုသေချာစေရန်အတွက်စမတ်ရွေးချယ်မှုတစ်ခုဖြစ်သည်။