လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Resource Read Edror များကိုဖမ်းရန် Try-Catch ကိုမည်သို့အသုံးပြုရမည်နည်း

Resource Read Edror များကိုဖမ်းရန် Try-Catch ကိုမည်သို့အသုံးပြုရမည်နည်း

M66 2025-06-06

PHP တွင်အထူးသဖြင့်ကြီးမားသောဖိုင်များသို့မဟုတ် streaming data များကိုပြုပြင်သည့်အခါ hash တန်ဖိုးများကို update လုပ်ရန် hash values ​​များကို update လုပ်ရန် hash_update_stream function ကိုအသုံးပြုသည်။ သို့သော်ဖိုင် (သို့) စီးကိုဖတ်သည့်အခါဖိုင်မလုံလောက်ခြင်း, ခွင့်ပြုချက်မလုံလောက်ခြင်းများစသည်တို့ကိုသင်ကြုံတွေ့ရနိုင်သည်

Hash_update_stream သည် PHP တွင် Hash Update function ဖြစ်သည်။ ဥပမာအားဖြင့်၎င်းသည်ဖိုင်တင်ခြင်းကဲ့သို့သောအခြေအနေများ, ကွန်ရက်တောင်းဆိုမှုစီးဆင်းမှုနှင့်အခြားအရာများကဲ့သို့သောအခြေအနေများကိုကိုင်တွယ်ရာတွင်အလွန်အသုံးဝင်သည်။ စာဖတ်ခြင်းအမှားတစ်ခုကိုကြုံတွေ့ရသောအခါပရိုဂရမ်ကိုလျောက်ပတ်စွာကိုင်တွယ်နိုင်ရန်သေချာစေရန်အတွက်ကျွန်ုပ်တို့သည်သက်ဆိုင်ရာကုဒ်ကို စမ်းကြည့်ပါ

1 ။ hash_update_stream 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 ဖြစ်သည်။

2 ။ Resource ဖတ်ခြင်းအမှား

Hash_update_Stream function ကိုအမှန်တကယ်အသုံးပြုသောအခါကျွန်ုပ်တို့သည်များသောအားဖြင့်ခိုင်လုံသောစီးဆင်းမှုကိုပြုလုပ်ရန်လိုအပ်သည် (ဥပမာဖိုင်လက်ကိုင်ကဲ့သို့) ။ အကယ်. စမ်းချောင်းကိုဖတ်။ မရပါသို့မဟုတ်အမှားတစ်ခုမဖြစ်နိုင်ပါက hash_update_stream function သည်ပျက်ကွက်ပြီး မှားယွင်းသော ပြန်လာသည်။ ဤအချိန်တွင်ကျွန်ုပ်တို့သည်ခြွင်းချက်များကိုဖမ်းယူခြင်းနှင့်ဤအမှားများကိုကိုင်တွယ်ခြင်းဖြင့်ပရိုဂရမ်ပြတ်တောက်ခြင်းကိုရှောင်ရှားနိုင်သည်။

ဘုံအရင်းအမြစ်စာဖတ်ခြင်းအမှားများတွင် -

  • ဖိုင်မတည်ရှိပါဘူး

  • မလုံလောက်ဖိုင်ခွင့်ပြုချက်

  • ကွန်ယက်တောင်းဆိုမှုမအောင်မြင်ပါ (စမ်းချောင်းမှစီးဆင်းပါက)

3 ။ အမှားများကိုဖမ်းရန် Twe-Catch ကို သုံးပါ

PHP တွင် Try-catch block သည်ခြွင်းချက်များကိုဖမ်းယူရန်နှင့်၎င်းတို့အားပြုလုပ်ရန်အသုံးပြုသည်။ Hash_update_stream function ကို ကြိုးစားပြီး လုပ်ကွက်ထဲထည့်ပြီးစာဖတ်ခြင်းစီးဆင်းမှုမအောင်မြင်ပါကအမှားကိုသင့်လျော်စွာကိုင်တွယ်ဖြေရှင်းနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အမှားမက်ဆေ့ခ်ျများကိုမှတ်တမ်းတင်နိုင်ပြီးအသုံးပြုသူအားဖိုင်ကိုထပ်မံတင်ရန်သို့မဟုတ်အခြားတန်ပြန်အစီအမံများကိုပြုလုပ်ရန်လှုံ့ဆော်နိုင်သည်။

4 ။ နမူနာကုဒ်

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();
}
?>

5 ။ ကုဒ်ဖော်ပြချက်

  • ဤဥပမာတွင် hash connection ကို hash_init function ကိုပထမဆုံးစတင်သည်။

  • ထို့နောက်ဖိုင်ကိုဖွင့်ရန် fopen ကို သုံးပါ။ အကယ်. ဖိုင်ကိုဖွင့ ်. မရပါကခြွင်းချက်တစ်ခုချထားသည်။

  • နောက်တစ်ခေါက် ကွင်းဆက် တွင် file stream ကိုစဉ်ဆက်မပြတ်ဖတ်ရန်နှင့် Hash ကိုအသစ်ပြောင်းရန် hash_update_stream ကို သုံးပါ။ အကယ်. စီးဆင်းမှုသည်အမှားကိုဖတ်ပါကချွင်းချက်တစ်ခုချွင်းချက်ချသည်။

  • နောက်ဆုံးတွင်ဖိုင်၏ hash တန်ဖိုးကိုရယူပါ။

Try-catch Block သည်ဖိုင်များကိုဖတ်ခြင်းမပြုဘဲမအောင်မြင်သောအခါပရိုဂရမ်သည်အမှားအယွင်းများကိုဖမ်းယူနိုင်အောင်ပြုလုပ်နိုင်သည်။

6 ။ မဟာဗျူဟာကိုင်တွယ်အမှား

အမှားကိုဖမ်းပြီးနောက်ကွဲပြားခြားနားသောလိုအပ်ချက်များကိုအဆိုအရမတူညီသောအမှားကိုင်တွယ်သည့်နည်းဗျူဟာများကိုကျွန်ုပ်တို့ချမှတ်နိုင်သည်။ ဥပမာအားဖြင့်:

  • ဖိုင်ကိုနောက်တဖန်တင်ရန်အသုံးပြုသူအားချက်ချင်းနှိပ်ပါ။

  • နောက်ဆက်တွဲကြည့်ရှုရန်မှတ်တမ်းသို့အမှားများကိုမှတ်တမ်းတင်ပါ။

  • ရှေ့တန်းအသုံးပြုသူထံဖော်ရွေသောအမှားမက်ဆေ့ခ်ျကိုပြန်ပို့သည်။

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

String-catch ကို အသုံးပြု. ပရိုဂရမ်တွင် Resource Reading အမှားများကို အသုံးပြု. ပရိုဂရမ်၏ကြံ့ခိုင်မှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည့် adsh_update_stream function ကိုရိုက်ကူးနိုင်သည်။ ဖိုင်များသို့မဟုတ် streaming data များကိုပြုပြင်သည့်အခါပရိုဂရမ်သည်ဖြစ်နိုင်ချေရှိသောခြွင်းချက်အမျိုးမျိုးကိုကိုင်တွယ်ဖြေရှင်းနိုင်ရန်နှင့်ပြတ်တောက်ခြင်းသို့မဟုတ်အမှားများကိုရှောင်ရှားနိုင်ကြောင်းသေချာပါစေ။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်ပရိုဂရမ်သည်ပြ problems နာများနှင့်ကြုံတွေ့ရသောအခါပြ problems နာများနှင့်စနစ်တည်ငြိမ်မှုကိုရရှိစေရန်အတွက်သင့်လျော်သောအမှားများကိုကိုင်တွယ်နိုင်အောင်ပြုလုပ်နိုင်သည်။