လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Remote ဖိုင်စီးဆင်းမှုများနှင့်အချိန်မှန်အတွက် hash တွက်ချက်ပါ

Remote ဖိုင်စီးဆင်းမှုများနှင့်အချိန်မှန်အတွက် hash တွက်ချက်ပါ

M66 2025-05-27

application တစ်ခုတွင်ဖိုင်တစ်ခု၏ hash တန်ဖိုးကိုတွက်ချက်ခြင်းသည်ဘုံလိုအပ်ချက်တစ်ခုဖြစ်သည်။ Download စဉ်အတွင်းဖိုင်သည်ဖိုင်ကိုတွက်ချက်မှုရှိမရှိကိုစစ်ဆေးသည် ၎င်းသည်ကြီးမားသောဖိုင်များကိုပြုပြင်ရန်အတွက်အထူးအရေးကြီးသည်, အဘယ်ကြောင့်ဆိုသော်ကျွန်ုပ်တို့သည်ဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ထည့်ရန်မလိုအပ်ပါ,

ဤဆောင်းပါးသည် Hash_update_Stream function ကို အသုံးပြု. Remote file streams များကိုအမှန်တကယ် အသုံးပြု. Hash တန်ဖိုးများကိုအချိန်မှန်တွက်ချက်ရန်မည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။

1 ။ hash_update_stream function ကိုနားလည်ပါ

Hash_update_stream သည် PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ လုပ်ဆောင်ချက်၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 hash_update_stream ( resource $context , resource $stream , int $length = 8192 ) : bool
  • $ အခြေအနေ : များသောအားဖြင့် hash_init မှဖန်တီးသော hash ဆက်စပ်မှုအရင်းအမြစ်။

  • $ stream : လုပ်ငန်းများ၌လိုအပ်သည့်ဖိုင်စီးအရင်းအမြစ်များ။

  • $ အရှည် - အချိန်တစ်ခုစီကိုဖတ်ရှုတိုင်းအချိန်တိုင်းဖတ်ပါ။ ပုံမှန်သည် 8192 bytes ဖြစ်သည်။

ဤလုပ်ဆောင်ချက်သည်သတ်မှတ်ထားသောဖိုင်စီးဆင်းမှုမှဒေတာများကိုဖတ်ပြီးဖိုင်ကိုဖတ်သည်အထိ၎င်းကို hash context သို့ update လုပ်သည်။

2 ။ Remote ဖိုင်စီးဆင်းမှုကိုအစစ်အမှန်အချိန်အတွက်လုပ်ငန်းစဉ်များနှင့် hash တန်ဖိုးများကိုတွက်ချက်ပါ

PHP တွင်ဝေးလံခေါင်ဖျားသောဖိုင်စီးများကိုကိုင်တွယ်ခြင်းသည်များသောအားဖြင့် fopen သို့မဟုတ် curl functions များကိုအသုံးပြုသည်။ ဤတွင် Fopen နှင့် Hash_update_stream ကို အသုံးပြု. Remote File Stream ကိုမည်သို့လုပ်ဆောင်ရမည်ကိုပြသပြီး Hash တန်ဖိုးများကိုအချိန်မှန်တွက်ချက်ရန်နှင့် hash values ​​များကိုတွက်ချက်သည်။

 <?php

// Hash အခြေအနေကိုစတင်ပါ(ဥပမာအားဖြင့် SHA-256 algorithm)
$hashContext = hash_init('sha256');

// ဝေးလံခေါင်သီဖိုင် URL
$fileUrl = 'http://m66.net/samplefile.txt';

// ဝေးလံခေါင်သီဖိုင်စီးကိုဖွင့်ပါ
$stream = fopen($fileUrl, 'r');

// ဖိုင်ကိုအောင်မြင်စွာဖွင့်သည်ကိုစစ်ဆေးပါ
if ($stream) {
    // အသုံးပြု hash_update_stream Real-Time Hash Value update ကို
    while (!feof($stream)) {
        // တစ်ခုချင်းစီကိုဖတ်ပါ 8192 bytes နှင့် hash တန်ဖိုးကို update
        hash_update_stream($hashContext, $stream, 8192);
    }
    
    // ဖိုင်စီးကိုပိတ်ပါ
    fclose($stream);

    // နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
    $hashValue = hash_final($hashContext);
    echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $hashValue;
} else {
    echo "无法ဝေးလံခေါင်သီဖိုင်စီးကိုဖွင့်ပါ!";
}

?>

3 ။ code ခွဲခြမ်းစိတ်ဖြာ

  1. hash အခြေအနေကိုစတင်ရန် :

    • SHA-256 algorithm ၏ hash algorithm ၏ hash algorithm function ကိုမှပထမ ဦး ဆုံးဖန်တီးပါ။

  2. Remote ဖိုင်စီးကိုဖွင့်ပါ

    • ဝေးလံခေါင်သီသောဖိုင်များကိုဖွင့်ရန် fopen ကို သုံးပါ။ ဖိုင်၏ URL သည် http://m66.net/swlefile.txt ဖြစ်သည်။ URL သည်၎င်းကို M66.net ဒိုမိန်းအမည်နှင့်အစားထိုးရန်သင်တောင်းခံသည့်အပိုင်းဖြစ်သည်။

  3. Process file streams ကိုအချိန်မှန်အတွက် -

    • ဖိုင်စီးမှဒေတာများကိုဖတ်ရန်နှင့် hash တန်ဖိုးကိုတိုင်းမွမ်းမံရန် hash_update_stream function ကိုသုံးပါ။ default 8192-byte လုပ်ကွက်အရွယ်အစားကိုဖိုင်ကိုဖတ်ရန်ဤနေရာတွင်အသုံးပြုသည်။ ထိရောက်မှုတိုးပွားစေရန်သို့မဟုတ်မှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချရန်လိုအပ်သည့်အတိုင်းဤတန်ဖိုးကိုချိန်ညှိနိုင်သည်။

  4. File Stream နှင့် output ရလဒ်များကိုပိတ်ပါ

    • ဖိုင်ဖတ်ပြီးသည်နှင့် FCLOESE ကို အသုံးပြု. FCLOES ကို အသုံးပြု. ဖိုင်စီးကိုပိတ်ပြီး Hash_Final ကို အသုံးပြု. နောက်ဆုံး hash value ကိုရယူပါ။

4 ။ မှတ်စုများ

  • Memory စားသုံးမှု - ဖိုင်များကိုပိတ်ဆို့ခြင်းဖြင့်ဖိုင်များကိုပိတ်ဆို့ခြင်းနှင့် Hash Value ကိုအသစ်ပြောင်းခြင်းဖြင့်ဖတ်ပြီးသောကြောင့်ဤနည်းလမ်းသည်ဖိုင်တစ်ခုလုံးကိုတစ်ပြိုင်တည်းတင်ခြင်းထက်ပိုမိုထိရောက်စေသည်။

  • ချို့ယွင်းချက်ကိုင်တွယ်ခြင်း - လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်ကွန်ယက်ပြတ်တောက်ခြင်းကဲ့သို့သောဖိုင်များသို့မဟုတ်စာဖတ်ခြင်းလုပ်ငန်းစဉ်အတွင်းဖြစ်နိုင်ချေရှိသောအမှားအယွင်းများကိုသင်စဉ်းစားသင့်သည်။ အမှားကိုင်တွယ်မှုကို Try-catch statement ကို သုံး. သို့မဟုတ်ပြန်လာတန်ဖိုးကိုစစ်ဆေးခြင်းကိုပြုလုပ်နိုင်သည်။

  • File Type Support : Hash_update_stream သည် ဖိုင်အမျိုးအစားများစွာကိုထောက်ပံ့သည်။ SHA1 , MD5 သို့မဟုတ်အခြားထောက်ပံ့ထားသော algorithms ကဲ့သို့သော hash algorithm ကိုလိုအပ်သလိုညှိနိုင်သည်။

5 ။ ဝေးလံခေါင်ဖျားဖိုင်စီးကိုကိုင်တွယ်ရန်ဆံပင်ကောက်ကောက်ကိုသုံးပါ

FOPEN ကို အသုံးပြုခြင်းအပြင် Remote File Streams များကိုကိုင်တွယ်ရန်သင်ဆံပင်ကောက်ကောက်ကိုလည်းသုံးနိုင်သည်။ Curl သည်ပိုမိုရှုပ်ထွေးသောဝေးလံခေါင်ဖျားသောဖိုင်အမျိုးအစားများနှင့်သင့်လျော်သော HTTP တောင်းဆိုမှု parameters များနှင့် header အချက်အလက်များကိုပိုမိုကိုင်တွယ်နိုင်သည်။ ဤတွင် curl ကိုအသုံးပြုပြီးဥပမာတစ်ခု

 <?php

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

// ဝေးလံခေါင်သီဖိုင် URL
$fileUrl = 'http://m66.net/samplefile.txt';

// အသုံးပြု CURL Remote ဖိုင်စီးကိုရယူပါ
$ch = curl_init($fileUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // အချိန်ကုန်ထားပါ

// ကရိယာတန်းဆာ CURL ဖိုင်အကြောင်းအရာကိုတောင်းဆိုခြင်းနှင့်ရယူပါ
$response = curl_exec($ch);

// စစ်ဆေးကြည့်ရှု CURL တောင်းဆိုမှုအောင်မြင်သောရှိမရှိ
if ($response === false) {
    echo "CURL အမှား: " . curl_error($ch);
    curl_close($ch);
    exit;
}

// အသုံးပြု hash_update_stream ဖိုင်အကြောင်းအရာကိုလုပ်ဆောင်ပါနှင့် hash တန်ဖိုးကိုတွက်ချက်ပါ
$stream = fopen('php://memory', 'r+');
fwrite($stream, $response);
rewind($stream);

while (!feof($stream)) {
    hash_update_stream($hashContext, $stream, 8192);
}

// နောက်ဆုံး hash တန်ဖိုးကိုရယူပါ
$hashValue = hash_final($hashContext);
echo "ဖိုင်၏ hash တန်ဖိုးဖြစ်ပါတယ်: " . $hashValue;

// ဖိုင်စီးကိုပိတ်ပါ和 CURL ရုံးထိုင်အချိန်ကာလ
fclose($stream);
curl_close($ch);

?>

ဤဥပမာတွင် Remote File contents များကိုရယူရန် Curl ကို အသုံးပြု. မှတ်ဉာဏ်ချောင်းသို့ရေးပါ, ထို့နောက် hash_update_stream နှင့် hash တန်ဖိုးကိုတွက်ချက်ပါ။ ပိုမိုရှုပ်ထွေးသော network configurations များသို့မဟုတ်ထိန်းချုပ်မှုများလိုအပ်သည့်အခြေအနေများအတွက်ဤချဉ်းကပ်မှုသည်သင့်လျော်သည်။

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

PHP ၏ hash_update_stream function ကိုအသုံးပြုခြင်းဖြင့်ကြီးမားသောဖိုင်များကို အသုံးချ. ဖိုင်များကို memory ထဲသို့ 0 င်ရောက်ခြင်းကိုရှောင်ရှားနိုင်သည်။ ဝေးလံခေါင်သီသောဖိုင်များကိုလုပ်ဆောင်သောအခါ, သင်သည်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီရွေးချယ်ရန် fopen သို့မဟုတ် curl ကို ရွေးချယ်နိုင်သည်။ ဤနည်းစနစ်ကိုကျွမ်းကျင်ပြီးသောအခါဖိုင်အတည်ပြုခြင်း, ကူးယူခြင်းနှင့်အခြားအခြေအနေများကို download လုပ်ခြင်း,

ဒီဆောင်းပါးကမင်းကိုအထောက်အကူပြုမယ်လို့မျှော်လင့်ပါတယ်။ သင့်တွင်မေးခွန်းများရှိပါကမှတ်ချက်ပေးသည့်ကဏ် in တွင်၎င်းကိုဆွေးနွေးရန်အခမဲ့ဖြစ်ပါစေ။