လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> မထောက်ပံ့သော PHP ဗားရှင်းများတွင် hash_update_stream () ကိုအသုံးပြုရန်အခြားနည်းလမ်းများ

မထောက်ပံ့သော PHP ဗားရှင်းများတွင် hash_update_stream () ကိုအသုံးပြုရန်အခြားနည်းလမ်းများ

M66 2025-05-18

PHP တွင် Hash_update_stream () သည် hash တန်ဖိုးများကိုအသစ်ပြောင်းခြင်းအတွက်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်ဤလုပ်ဆောင်မှုကို PHP ဗားရှင်းအားလုံးတွင်အထူးသဖြင့် PHP ၏အဟောင်းများတွင်မထောက်ပံ့ပါ။ ဤလုပ်ဆောင်မှုကိုမပံ့ပိုးသောပတ်ဝန်းကျင်တစ်ခုတွင်အလားတူလုပ်ဆောင်ချက်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း။ ဤဆောင်းပါးသည်သင့်အား hash_update_stream ကိုအစားထိုးရန်နည်းလမ်းများစွာကိုပေးလိမ့်မည်။

1 ။ hash_init () နှင့် hash_update () ကို သုံးပါ။

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 မပါဘဲတူညီသောအကျိုးသက်ရောက်မှုကိုရရှိနိုင်မည်ဖြစ်သည်။

2 ။ stream_get_contontents () နှင့် hash_update () ကို သုံးပါ။

အခြားရွေးချယ်စရာတစ်ခုမှာဖိုင်စီး၏ 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 () ကို အသုံးပြုသည်။ ဤနည်းလမ်းသည်ရိုးရှင်းသော်လည်းဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်ပြီးကြီးမားသောဖိုင်များနှင့်မသက်ဆိုင်ပါ။

3 ။ ပြင်ပစာကြည့်တိုက်များသို့မဟုတ်တိုးချဲ့မှုကိုသုံးပါ

အကယ်. သင်၏ 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 များသို့မဟုတ်ကိရိယာများကိုသင်ရွေးချယ်နိုင်သည်။

4 ။ PHP ဗားရှင်းကိုအဆင့်မြှင့်တင်ပါ

အထက်ဖော်ပြပါနည်းလမ်းသည် 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 ဗားရှင်းကိုအဆင့်မြှင့်တင်ခြင်းသည်ကော်မတီ၏ရေရှည်လိုက်ဖက်မှုနှင့်လုံခြုံရေးကိုသေချာစေရန်အတွက်စမတ်ရွေးချယ်မှုတစ်ခုဖြစ်သည်။