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

hash_update_stream ကို အသုံးပြု. ဖိုင်ကြီးတစ်ခု၏ hash ကိုမည်သို့တွက်ချက်ရမည်နည်း ()

M66 2025-05-27

PHP တွင်ဖိုင်ကြီးတစ်ပါး၏ hash ကိုတွက်ချက်ရန်လိုအပ်သည့်အခါကျွန်ုပ်တို့သည်စွမ်းဆောင်ရည်ပြ issues နာများကိုကြုံတွေ့ရနိုင်သည်။ ဘာဖြစ်လို့လဲဆိုတော့ဖိုင်တစ်ခုလုံးကိုတစ်ပြိုင်နက်တည်းဖတ်ပြီး hash ကိုတွက်ချက်မယ်ဆိုရင်, ထို့ကြောင့် PHP သည်ဖိုင်တစ်ခု၏ hash တန်ဖိုးကိုတွက်ချက်ရန်ထိရောက်သောနည်းလမ်းအချို့နှင့် hash_update_stram () function သည်၎င်းတို့ထဲမှတစ်ခုဖြစ်သည်။

ဤဆောင်းပါးသည်ကြီးမားသောဖိုင်တစ်ခု၏ hash တန်ဖိုးကိုပိုမိုတွက်ချက်ရန် Hash_update_stream () function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီးကြီးမားသောဖိုင်များပြုပြင်သည့်အခါမှတ်ဥာဏ်လျှံလျှောပြ problem နာမရှိပါ။

1 ။ hash_update_stream () function ကဘာလဲ။

hash_update_stream () function သည် PHP မှ hash တန်ဖိုးများကိုမွမ်းမံရန် PHP မှပေးသော function တစ်ခုဖြစ်သည်။ ဖိုင်တစ်ခုလုံးတွင် hash algorithm ကိုတိုက်ရိုက် အသုံးပြု. Hash_update_Stream () သည် ဖိုင်တွဲများကိုပိတ်ပင်တားဆီးမှုဖြင့်ပြုလုပ်နိုင်ပြီး hash တန်ဖိုးကို dynamically dynamically download လုပ်သည်။ ဤနည်းအားဖြင့်ပရိုဂရမ်သည်ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့မထည့်နိုင်ပါ, ထို့ကြောင့်ကြီးမားသောဖိုင်များ၏ hash တန်ဖိုးကိုတွက်ချက်ရန်အထူးသဖြင့်သင့်လျော်သည်။

function ရှေ့ပြေးပုံစံ:

 bool hash_update_stream ( resource $context , resource $stream , int $length )
  • $ Context : hash_init () function ကိုဖန်တီးထားသည့် hash အခြေအနေတွင်ရှိသည်။

  • $ stream : ခိုင်လုံသောဖိုင်အရင်းအမြစ်လက်ကိုင်တစ်ခုဖြစ်ပြီး hash တန်ဖိုးကိုတွက်ချက်ရန်လိုအပ်သည့်ဖိုင်ကိုညွှန်ပြသည့်ဖိုင်ကိုညွှန်ပြသည်။

  • $ အရှည် - အချိန်ကိုဖတ်နေ Bytes အရေအတွက်။ ယေဘုယျအားဖြင့်ထိရောက်သောစာဖတ်ခြင်းနှင့်တွက်ချက်မှုများကိုသေချာစေရန်သင့်တော်သော bytes အရေအတွက်ကိုသတ်မှတ်ရန်အကြံပြုသည်။

2 ။ ကြီးမားသောဖိုင်၏ hash တန်ဖိုးကိုတွက်ချက်ရန် hash_update_stream () function ကိုသုံးပါ

အဆင့် 1: hash အခြေအနေကိုအစပြုပါ

ပထမ ဦး စွာ Hash အခြေအနေကိုစတင်ရန် hash_init () ကို အသုံးပြုရန်လိုအပ်သည်။ ဥပမာအားဖြင့်, sha256 algorithm ကိုသုံးပါ။

 $context = hash_init('sha256');

အဆင့် 2: ဖိုင်ကိုဖွင့်ပြီးပိတ်ဆို့ခြင်းဖြင့်ပိတ်ဆို့ပါ

ထို့နောက်ကျွန်ုပ်တို့သည်ဖိုင်ကိုဖွင့ ်. ဖိုင်ပါ 0 င်သည့်အရာများကိုတစ်ခုဖတ်ပြီး Hash Value ကို hash value ကို ash_update_stream မှတဆင့်ပြောင်းလဲခြင်း။ ဤတွင်အပြည့်အဝကုဒ်ဥပမာတစ်ခုဖြစ်သည်:

 <?php
// Hash အခြေအနေကိုစတင်ပါ
$context = hash_init('sha256');

// hash တန်ဖိုးကိုတွက်ချက်ရန်လိုအပ်သည့်ဖိုင်ကြီးတစ်ခုဖွင့်ပါ
$file = fopen('largefile.txt', 'rb');
if ($file === false) {
    die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}

// အချိန်ကိုဖတ်နေ Bytes အရေအတွက်ကိုသတ်မှတ်ပါ
$bufferSize = 8192; // 8KB
while (!feof($file)) {
    // ဖိုင်၏ပိတ်ပင်တားဆီးမှုကိုဖတ်ပြီး Hash Value ကို update လုပ်ပါ
    $data = fread($file, $bufferSize);
    hash_update_stream($context, $data, strlen($data));
}

// နောက်ဆုံး hash တန်ဖိုးကိုတွက်ချက်
$hash = hash_final($context);
fclose($file);

// output ဖိုင်၏ hash တန်ဖိုး
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်:$hash";
?>

ဤဥပမာတွင် FOPEN () ကို အသုံးပြု. ဖိုင်ကြီးတစ်ခုဖွင့်ပြီး File Contents Block ကို Fork မှဖတ်ခြင်းဖြင့်ဖတ်ပါ။ ဒေတာကိုဖတ်သည့်အခါတိုင်း hash update အတွက် hash_update_stream () function ကိုသွားပါ။

အဆင့် 3: Hash Value ကိုတွက်ချက်ပါ

ဖိုင်တွင်အချက်အလက်များအားလုံးကိုလုပ်ဆောင်ပြီးနောက်နောက်ဆုံး hash တန်ဖိုးကိုရရှိရန် hash_final () function ကိုအသုံးပြုသည်။

3 ။ hash_update_stream () function ကိုအသုံးပြုခြင်း၏အားသာချက်များ

hash_update_stream () ဖိုင်ကြီးတစ်ခု၏ hash တန်ဖိုးကိုတွက်ချက်ရန်ဖိုင်တစ်ခုလုံးကိုဖတ်ခြင်းထက်အောက်ပါအားသာချက်များကိုအသုံးပြုသည်။

  • Memory စားသုံးမှုနိမ့်ခြင်း - ဖိုင်အကြောင်းအရာကိုတစ်ချိန်တည်းတွင်မှတ်ဉာဏ်ထဲသို့ 0 င်ရန်မဟုတ်ဘဲမှတ်ဉာဏ်အသုံးပြုမှုကိုအလွန်လျော့နည်းစေပြီးကြီးမားသောဖိုင်များကိုကိုင်တွယ်ရန်သင့်တော်သည်။

  • ထိရောက်သောကွန်ပျူတာ - chunked စာဖတ်ခြင်းအားဖြင့်ကြီးမားသောဖိုင်များကိုတွက်ချက်ခြင်းဖြင့်မှတ်ဥာဏ်ပြ problems နာများကြောင့်ပရိုဂရမ်များပျက်ကျမှုမရှိသောအစီအစဉ်မရှိဘဲထိရောက်စွာလုပ်ဆောင်နိုင်သည်။

  • ပြောင်းလွယ်ပြင်လွယ် - သင်ဖတ်ရှုရန်အတွက်ဒေတာပိတ်ပင်တားဆီးမှုအရွယ်အစား ( $ buffersize ) ကိုချိန်ညှိနိုင်သည်။ ဖိုင်အရွယ်အစားနှင့်စနစ်၏မှတ်ဉာဏ်ဖွဲ့စည်းမှုအပေါ် အခြေခံ. အကောင်းဆုံးပိတ်ပင်တားဆီးမှုအရွယ်အစားကိုရွေးချယ်နိုင်သည်။

4 ။ URL domain name ကိုအစားထိုးခြင်းအတွက်နမူနာကုဒ်

PHP စီမံကိန်းများတွင်ဖိုင်လမ်းကြောင်းကိုဖိုင်တွဲတစ်ခုပြုလုပ်ရန်သို့မဟုတ်ဝေးလံသောဆာဗာမှဖိုင်များကိုရယူရန်လိုအပ်နိုင်သည်။ ဤကိစ္စတွင် URL တွင်ဒိုမိန်းအမည်ပါ 0 င်ပါက M66.net ဖြင့်ဒိုမိန်းအမည်ကိုအစားထိုးရန်လိုအပ်နိုင်သည်။ URL ကိုပြုပြင်သည့်အခါဒိုမိန်းအမည်ကိုမည်သို့အစားထိုးရမည်ကိုဖော်ပြသည့်ရိုးရှင်းသောကုဒ်ပါသောဥပမာတစ်ခုဖြစ်သည်။

 <?php
$url = 'https://www.example.com/file.txt';
$newUrl = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
echo "အသစ်ပြောင်းထားသောURLဟုတ်ကဲ့:$newUrl";
?>

ထုတ်လုပ်မှု -

 အသစ်ပြောင်းထားသောURLဟုတ်ကဲ့:https://m66.net/file.txt

ဤနည်းအားဖြင့် URL ရှိဒိုမိန်းအမည်ကိုအလွယ်တကူအစားထိုးနိုင်သည်။

5 ။ အကျဉ်းချုပ်

ဤဆောင်းပါးတွင်ကြီးမားသောဖိုင်၏ hash တန်ဖိုးကိုထိရောက်စွာတွက်ချက်ရန် Hash_update_stram () function ကိုမည်သို့အသုံးပြုရမည်ကိုကျွန်ုပ်တို့ဖော်ပြသည်။ ဖိုင်များပိတ်ဆို့ခြင်းဖြင့် Hash တန်ဖိုးကိုပိတ်ဆို့ခြင်းဖြင့်စာဖတ်ခြင်းဖြင့်စာဖတ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသောဖိုင်များကိုမှတ်ဉာဏ်ပြည့်လျှံနေသောပြ issues နာများနှင့်မကိုက်ညီဘဲထိရောက်စွာကိုင်တွယ်နိုင်သည်။ တစ်ချိန်တည်းမှာပင်ဒိုမိန်းအမည်ကို URL တွင်အစားထိုးရန်ရိုးရှင်းစွာပြသခဲ့သည်။

ဤအကြောင်းအရာများသည်ကြီးမားသောဖိုင်များကိုကိုင်တွယ်ရာတွင်စွမ်းဆောင်ရည်တိုးတက်စေရန်နှင့်ဘုံစွမ်းဆောင်ရည်ပြ problems နာများကိုရှောင်ရှားရန်ကူညီနိုင်လိမ့်မည်ဟုမျှော်လင့်ပါသည်။ သင့်တွင်မေးခွန်းများရှိပါက ကျေးဇူးပြု. ဆွေးနွေးရန်မက်ဆေ့ခ်ျတစ်ခုထားပါ။