PHP တွင်အထူးသဖြင့်ကြီးမားသောဖိုင်များသို့မဟုတ် streaming data များကိုပြုပြင်သည့်အခါ hash တန်ဖိုးများကို update လုပ်ရန် hash values များကို update လုပ်ရန် hash_update_stream function ကိုအသုံးပြုသည်။ သို့သော်ဖိုင် (သို့) စီးကိုဖတ်သည့်အခါဖိုင်မလုံလောက်ခြင်း, ခွင့်ပြုချက်မလုံလောက်ခြင်းများစသည်တို့ကိုသင်ကြုံတွေ့ရနိုင်သည် ။
Hash_update_stream သည် PHP တွင် Hash Update function ဖြစ်သည်။ ဥပမာအားဖြင့်၎င်းသည်ဖိုင်တင်ခြင်းကဲ့သို့သောအခြေအနေများ, ကွန်ရက်တောင်းဆိုမှုစီးဆင်းမှုနှင့်အခြားအရာများကဲ့သို့သောအခြေအနေများကိုကိုင်တွယ်ရာတွင်အလွန်အသုံးဝင်သည်။ စာဖတ်ခြင်းအမှားတစ်ခုကိုကြုံတွေ့ရသောအခါပရိုဂရမ်ကိုလျောက်ပတ်စွာကိုင်တွယ်နိုင်ရန်သေချာစေရန်အတွက်ကျွန်ုပ်တို့သည်သက်ဆိုင်ရာကုဒ်ကို စမ်းကြည့်ပါ ။
Hash_update_Stream function သည် SHOW တန်ဖိုးကို update လုပ်ရန် (ဥပမာဖိုင်သို့မဟုတ်အခြား data stream ကဲ့သို့သောအချက်အလက်များ) မှအချက်အလက်များကို hash value သို့ထည့်သွင်းရန်ဖြစ်သည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
bool hash_update_stream ( resource $context , resource $stream [, int $length = 1024 ] )
$ Context : Hash အခြေအနေ ( hash_init မှတဆင့်ဖန်တီး) ။
$ stream : ဖတ်ရန်အရင်းအမြစ်စီး (ဥပမာ, ဖိုင်လက်ကိုင်) ။
$ အရှည် - တစ်ကြိမ်လျှင် Bytes အရေအတွက်ကိုဖတ်ပါ။ ပုံမှန်အားဖြင့် 1024 ဖြစ်သည်။
Hash_update_Stream function ကိုအမှန်တကယ်အသုံးပြုသောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်ခိုင်လုံသောစီးဆင်းမှုကိုပြုလုပ်ရန်လိုအပ်သည် (ဥပမာဖိုင်လက်ကိုင်ကဲ့သို့) ။ အကယ်. စမ်းချောင်းကိုဖတ်။ မရပါသို့မဟုတ်အမှားတစ်ခုမဖြစ်နိုင်ပါက hash_update_stream function သည်ပျက်ကွက်ပြီး မှားယွင်းသော ပြန်လာသည်။ ဤအချိန်တွင်ကျွန်ုပ်တို့သည်ခြွင်းချက်များကိုဖမ်းယူခြင်းနှင့်ဤအမှားများကိုကိုင်တွယ်ခြင်းဖြင့်ပရိုဂရမ်ပြတ်တောက်ခြင်းကိုရှောင်ရှားနိုင်သည်။
ဘုံအရင်းအမြစ်စာဖတ်ခြင်းအမှားများတွင် -
ဖိုင်မတည်ရှိပါဘူး
မလုံလောက်ဖိုင်ခွင့်ပြုချက်
ကွန်ယက်တောင်းဆိုမှုမအောင်မြင်ပါ (စမ်းချောင်းမှစီးဆင်းပါက)
PHP တွင် Try-catch block သည်ခြွင်းချက်များကိုဖမ်းယူရန်နှင့်၎င်းတို့အားပြုလုပ်ရန်အသုံးပြုသည်။ Hash_update_stream function ကို ကြိုးစားပြီး လုပ်ကွက်ထဲထည့်ပြီးစာဖတ်ခြင်းစီးဆင်းမှုမအောင်မြင်ပါကအမှားကိုသင့်လျော်စွာကိုင်တွယ်ဖြေရှင်းနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အမှားမက်ဆေ့ခ်ျများကိုမှတ်တမ်းတင်နိုင်ပြီးအသုံးပြုသူအားဖိုင်ကိုထပ်မံတင်ရန်သို့မဟုတ်အခြားတန်ပြန်အစီအမံများကိုပြုလုပ်ရန်လှုံ့ဆော်နိုင်သည်။
Hash_Update_Stream function ကို အသုံးပြု. အရင်းအမြစ်များကိုဖမ်းယူခြင်းအတွက်နမူနာကုဒ်ဖြစ်သည်။
<?php
// ဖိုင်လမ်းကြောင်းနှင့် hashing algorithm ကို set
$filePath = '/path/to/your/file.txt';
$hashAlgo = 'sha256';
// တစ် ဦး hash အခြေအနေဖန်တီးပါ
$context = hash_init($hashAlgo);
try {
// ဖိုင်ကိုဖွင့်ပါ
$file = fopen($filePath, 'rb');
if (!$file) {
throw new Exception("无法ဖိုင်ကိုဖွင့်ပါ: $filePath");
}
// update hash
while (!feof($file)) {
// အသုံးပြု hash_update_stream update hash值
if (!hash_update_stream($context, $file)) {
throw new Exception("File Stream ကိုဖတ်။ မရပါ: $filePath");
}
}
// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$hashValue = hash_final($context);
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: $hashValue";
// ဖိုင်ကိုပိတ်ပါ
fclose($file);
} catch (Exception $e) {
// အမှားအယွင်းများနှင့် output ကိုဖမ်းယူ
echo "အမှား: " . $e->getMessage();
}
?>
ဤဥပမာတွင် hash connection ကို hash_init function ကိုပထမဆုံးစတင်သည်။
ထို့နောက်ဖိုင်ကိုဖွင့်ရန် fopen ကို သုံးပါ။ အကယ်. ဖိုင်ကိုဖွင့ ်. မရပါကခြွင်းချက်တစ်ခုချထားသည်။
နောက်တစ်ခေါက် ကွင်းဆက် တွင် file stream ကိုစဉ်ဆက်မပြတ်ဖတ်ရန်နှင့် Hash ကိုအသစ်ပြောင်းရန် hash_update_stream ကို သုံးပါ။ အကယ်. စီးဆင်းမှုသည်အမှားကိုဖတ်ပါကချွင်းချက်တစ်ခုချွင်းချက်ချသည်။
နောက်ဆုံးတွင်ဖိုင်၏ hash တန်ဖိုးကိုရယူပါ။
Try-catch Block သည်ဖိုင်များကိုဖတ်ခြင်းမပြုဘဲမအောင်မြင်သောအခါပရိုဂရမ်သည်အမှားအယွင်းများကိုဖမ်းယူနိုင်အောင်ပြုလုပ်နိုင်သည်။
အမှားကိုဖမ်းပြီးနောက်ကွဲပြားခြားနားသောလိုအပ်ချက်များကိုအဆိုအရမတူညီသောအမှားကိုင်တွယ်သည့်နည်းဗျူဟာများကိုကျွန်ုပ်တို့ချမှတ်နိုင်သည်။ ဥပမာအားဖြင့်:
ဖိုင်ကိုနောက်တဖန်တင်ရန်အသုံးပြုသူအားချက်ချင်းနှိပ်ပါ။
နောက်ဆက်တွဲကြည့်ရှုရန်မှတ်တမ်းသို့အမှားများကိုမှတ်တမ်းတင်ပါ။
ရှေ့တန်းအသုံးပြုသူထံဖော်ရွေသောအမှားမက်ဆေ့ခ်ျကိုပြန်ပို့သည်။
String-catch ကို အသုံးပြု. ပရိုဂရမ်တွင် Resource Reading အမှားများကို အသုံးပြု. ပရိုဂရမ်၏ကြံ့ခိုင်မှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည့် adsh_update_stream function ကိုရိုက်ကူးနိုင်သည်။ ဖိုင်များသို့မဟုတ် streaming data များကိုပြုပြင်သည့်အခါပရိုဂရမ်သည်ဖြစ်နိုင်ချေရှိသောခြွင်းချက်အမျိုးမျိုးကိုကိုင်တွယ်ဖြေရှင်းနိုင်ရန်နှင့်ပြတ်တောက်ခြင်းသို့မဟုတ်အမှားများကိုရှောင်ရှားနိုင်ကြောင်းသေချာပါစေ။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ပရိုဂရမ်သည်ပြ problems နာများနှင့်ကြုံတွေ့ရသောအခါပြ problems နာများနှင့်စနစ်တည်ငြိမ်မှုကိုရရှိစေရန်အတွက်သင့်လျော်သောအမှားများကိုကိုင်တွယ်နိုင်အောင်ပြုလုပ်နိုင်သည်။