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

ကျွန်ုပ်သည် MD5_File () ဖိုင်ကြီးတစ်ခုတွင်အသုံးပြုပါကကျွန်ုပ်ဘာလုပ်သင့်သနည်း။

M66 2025-05-28

PHP တွင် MD5_File သည် ဖိုင်တစ်ခု၏ MD5 hash တန်ဖိုးကိုတွက်ချက်ရန်အလွန်အဆင်ပြေသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်း၏အသုံးပြုမှုသည်ရိုးရှင်းပါသည်, ၎င်းကိုဖိုင်လမ်းကြောင်းသို့ကူးပါ။

 $hash = md5_file('http://m66.net/path/to/largefile.zip');
echo $hash;

သို့သော်ဖိုင်သည်အလွန်ကြီးမားသည့်အခါ MD5_File ကို အသုံးပြုခြင်းသည် MD5_File ကို အသုံးပြု. မှတ်ဉာဏ်မြင့်တက်စေပြီးမှတ်ဥာဏ်လျှံလျှံသောအမှားများကိုဖြစ်ပေါ်စေသည်။ ဘာဖြစ်လို့လဲဆိုတော့ PHP မှာဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲကိုစာဖတ်ခြင်းအတွက်အထူးသဖြင့်မှတ်ဥာဏ်တွေအများကြီးစားဖို့လွယ်ကူတဲ့ဝေးလံခေါင်သီသော URL ဖြစ်သည့်အခါတွင်ဖြစ်သည်။


MD5_File သည်အဘယ်ကြောင့်မှတ်ဉာဏ်တွင်မြင့်တက်နေသနည်း။

MD5_File သည်လွယ်ကူသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သော်လည်း၎င်းသည်အခြေခံအလွှာတွင်အမှန်တကယ်လည်ပတ်သည့်အခါဖိုင်တစ်ခုလုံးကိုမကြာခဏကြားခဲ့ရသည်။ ရာနှင့်ချီသော Megabytes နှင့် GB နှင့်အတူကြီးမားသောဖိုင်များသို့မဟုတ် GB အနည်းငယ်ပင်လျှင်မှတ်ဉာဏ်ခြေရာသည်အလွန်မြင့်မားပြီး PHP ၏မှတ်ဉာဏ်ကန့်သတ်ချက်ထက်ကျော်လွန်ရန်လွယ်ကူလိမ့်မည်။


Memory-Saving Toverals Memory

မှတ်ဉာဏ်ခွဲစိတ်မှုများကိုရှောင်ရှားနိုင်ရန်အတွက်ကျွန်ုပ်တို့သည် funks file streams များကိုဖတ်ရန်နှင့် MD5 ကိုတွက်ချက်ရန်အဖြေရှာနိုင်သည်။ ဤနည်းအားဖြင့်ဒေတာသေးငယ်သည့်အပိုင်းများကိုသာတစ်ကြိမ်လျှင်သာဖတ်ပြီးမှတ်ဉာဏ်အသုံးပြုမှုသည်အလွန်နည်းပါးသည်။

အစီအစဉ်ဥပမာ:

 function md5_file_stream(string $filename): string|false {
    // ဒါကြောင့်ဝေးလံခေါင်သီလျှင်URL,Protocol Header ကထောက်ခံမရှိမရှိပထမ ဦး ဆုံးစစ်ဆေးပါ
    $context = stream_context_create([
        'http' => ['method' => 'GET', 'timeout' => 10]
    ]);

    // ဖိုင်စီးကိုဖွင့်ပါ
    $fp = fopen($filename, 'rb', false, $context);
    if (!$fp) {
        return false;
    }

    $hashContext = hash_init('md5');

    while (!feof($fp)) {
        // တစ်ခုချင်းစီကိုဖတ်ပါ8KB,အနိမ့်မှတ်ဉာဏ်ဖိအား
        $data = fread($fp, 8192);
        if ($data === false) {
            fclose($fp);
            return false;
        }
        hash_update($hashContext, $data);
    }

    fclose($fp);

    return hash_final($hashContext);
}

// အသုံးပြုမှုဥပမာ
$url = 'http://m66.net/path/to/largefile.zip';
$md5 = md5_file_stream($url);
if ($md5 !== false) {
    echo "တင်သွင်းခြင်း MD5 တန်ဖိုး:$md5\n";
} else {
    echo "ဖိုင်သို့မဟုတ်တွက်ချက်သောအမှားကိုဖတ်ရန်မအောင်မြင်ပါ。\n";
}

အစီအစဉ်ကိုအားသာချက်များ

  • Memory Saving : တစ်ချိန်တည်းတွင်အချက်အလက်အနည်းငယ်ကိုသာဖတ်ပါ။ မှတ်ဉာဏ်အသုံးပြုမှုသည်တည်ငြိမ်သည်။

  • ကြီးမားသောဖိုင်များနှင့်သက်ဆိုင်သည် - ဒေသတွင်းနှင့်ဝေးလံခေါင်သီသောဖိုင်များကိုဝေးလံခေါင်သီသောဖိုင်များကိုတွက်ချက်ပါ။

  • ကွဲပြားခြားနားသောအခြေအနေများနှင့်လိုက်လျောညီထွေဖြစ်အောင်လုပ် ရာ ကို 16KB, 32KB စသဖြင့် (16 ကီလိုဂရမ်, 32KB စသည်) ကိုချိန်ညှိနိုင်သည်။


အကျဉ်းချုပ်

MD5 မှတွက်ချက်ရန်လိုအပ်သည့်ကြီးမားသောဖိုင်များနှင့်ကြုံတွေ့ရသောအခါ MD5_File Memory အသုံးပြုမှုသည်အလွန်မြင့်မားသည်။ ၎င်းသည်မှတ်ဥာဏ်ပေါက်ကွဲမှုများကိုရှောင်ရှားရုံသာမက Code ကိုရိုးရှင်းပြီးထိရောက်စေသည်။