PHP တွင် MD5_File () function ကိုအသုံးပြုထားသောဖိုင်တစ်ခု၏ MD5 hash တန်ဖိုးကိုတွက်ချက်ရန်အသုံးပြုသည်။ ၎င်းသည်ရိုးရှင်းပြီးအသုံးပြုရန်အဆင်ပြေသော်လည်း MD5_File () ကို Concurnegency Regurrame တွင်ခေါ်ဆိုသည့်အခါ developer များသည်စွမ်းဆောင်ရည်မြှင့်တင်မှုများသို့မဟုတ်တိကျသောရလဒ်များကိုရှောင်ရှားရန်အလားအလာရှိသောပြ problems နာအချို့ကိုဂရုပြုရန်လိုအပ်သည်။
MD5_File () သည်ဖိုင်အမျိုးအစားကိုဖတ်ရှုပြီး၎င်း၏ hash value ကိုတွက်ချက်သည်။ တစ်ပြိုင်နက်တည်းပတ်ဝန်းကျင်တွင်ဖြစ်စဉ်များသို့မဟုတ်ချည်များတစ်ပြိုင်နက်တည်းဖတ်ပြီးဖိုင်ကိုတစ်ချိန်တည်းတွင်ဖတ်ရှုပြီးစာဖြင့်ရေးပါက၎င်းသည် ဦး ဆောင်လမ်းပြလိမ့်မည်။
မပြည့်စုံသောသို့မဟုတ်ရေးသားထားသောဒေတာများကိုဖတ်ရှုနိုင်ပါသည်, ထို့ကြောင့်တွက်ချက်ထားသော MD5 တန်ဖိုးသည်မတိကျပါ။
ဖိုင်ကိုသော့ခတ်ရန်ရေးသားထားသောကြောင့်ဖြစ်သည်။ စာဖတ်ခြင်းသည်တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုကိုသက်ရောက်စေသည်။
ဖြေရှင်းချက် -
ဖိုင်များကိုရေးသားသည့်အခါ, စာဖြင့်ရေးသားပြီးမှသာသော့ခတ် ( အစု () ) ကိုအသုံးပြုပါ။
စာဖတ်ခြင်းကိုဖတ်သည့်အခါသို့မဟုတ်ဖိုင်ကိုရေးသားရန်နှင့် MD5 ကိုသေချာစေရန်ယန္တရားထည့်သွင်းရန်ယန္တရားကိုထည့်သွင်းထားသည်။
$filename = '/path/to/file.txt';
// အရေးအသားအခါသော့ခတ်
$file = fopen($filename, 'c+');
if (flock($file, LOCK_EX)) {
ftruncate($file, 0);
fwrite($file, 'အကြောင်းအရာအသစ်');
fflush($file);
flock($file, LOCK_UN);
}
fclose($file);
// စာဖတ်စဉ်ကာလအတွင်းရေးသားခြင်းကိုရှောင်ရှားရန်စာဖတ်စဉ်တွင်သော့ခတ်ထားသည့်အချိန်တွင်သော့ခတ်ထားသည်
$file = fopen($filename, 'r');
if (flock($file, LOCK_SH)) {
$md5 = md5_file($filename);
flock($file, LOCK_UN);
}
fclose($file);
echo "တင်သွင်းခြင်းMD5အဘိုး: " . $md5;
အချို့သော operating systems သို့မဟုတ် file systems များသည် file စစ်ဆင်ရေးအတွက် cache ယန္တရားရှိနိုင်သည် ။
ဖြေရှင်းချက် -
နောက်ဆုံးပေါ်ဖိုင်အမျိုးအစားဖတ်ရန်သေချာစေရန် file state cache ကိုသန့်ရှင်းရေးလုပ်ရန် Clearstatcache () function ကိုသုံးပါ။
clearstatcache(true, $filename);
$md5 = md5_file($filename);
MD5_File () သည် ဖိုင်တစ်ခုလုံးကိုဖတ်လိမ့်မည်။ အကယ်. ဖိုင်သည်ကြီးမားသည်သို့မဟုတ်ခေါ်ဆိုမှုအကြိမ်ရေသည်အလွန်မြင့်မားပါက၎င်းသည်ကျွန်ုပ် / o bottlenecks ကိုအလွယ်တကူဖြစ်စေပြီးစနစ်၏စွမ်းဆောင်ရည်ကိုအလွယ်တကူထိခိုက်စေနိုင်သည်။
အကောင်းဆုံးအကြံပြုချက်များ:
အကယ်. ဖိုင်သည်ပြောင်းလဲခြင်းရှိ, မရှိကိုသင်စစ်ဆေးပါက filemtime () နှင့်ဖိုင်အရွယ်အစား ဖိုင်များအပေါ် အခြေခံ. သင်ကပဏာမတရားစီရင်ခြင်းကိုပြုလုပ်နိုင်သည်။ ဖိုင်အမျိုးအစားများကိုအတည်ပြုပြီးမှသာ MD5_File () ကို ခေါ်ပါ။
မကြာခဏတွက်ချက်မှုများကိုရှောင်ရှားရန်ပိုမိုထိရောက်သောပြတ်တောင်းပြတ်တောင်းပြုပြင်ရေးယန္တရားများကိုအသုံးပြုပါ။
ကြီးမားသောဖိုင်များအတွက် chunked computing hashing ကိုထည့်သွင်းစဉ်းစားနိုင်သည်သို့မဟုတ်ပိုမိုထိရောက်သော hashing algorithm ကိုသုံးနိုင်သည်။
$filename = '/path/to/file.txt';
$lastMtime = 0;
$lastFilesize = 0;
$lastMd5 = '';
$currentMtime = filemtime($filename);
$currentFilesize = filesize($filename);
if ($currentMtime !== $lastMtime || $currentFilesize !== $lastFilesize) {
clearstatcache(true, $filename);
$lastMd5 = md5_file($filename);
$lastMtime = $currentMtime;
$lastFilesize = $currentFilesize;
}
echo "စာချုပ်စာတမ်းMD5: " . $lastMd5;
ဖြန့်ဝေထားသော (သို့) ဘက်စုံလုပ်ဆောင်သည့်ပတ်ဝန်းကျင်တွင်ဒေသခံဖိုင်သော့ခတ်ခြင်းများတွင်သာမှီခိုခြင်းသည်သာဓကများစွာအကြားအက်တမ်စစ်ဆင်ရေးကိုအာမခံမည်မဟုတ်ပါ။ ဤအချိန်တွင်ပိုမိုအဆင့်မြင့်သောထပ်တူပြုခြင်းယန္တရားများလိုအပ်သည်။
ဖြန့်ဝေထားသောသော့ခလောက်များကိုသုံးပါ (ဥပမာ Redis, zookeals စသည်တို့ကို အခြေခံ. သော့ခတ်ယန္တရားများကဲ့သို့) ကိုအသုံးပြုပါ။
File Processing အတွက် task une အတွက် file processing for sointing file တစ်ခုသာရှိရန်သေချာစေရန်အတွက်တစ်ချိန်တည်းတွင်သာပြုလုပ်ရန်သေချာစေရန်။
သင်၏ဖိုင်လမ်းကြောင်းကို URL အပေါ် အခြေခံ. (ဝေးလံသောဖိုင်များကဲ့သို့) ကို အခြေခံ. ရယူပါက ကျေးဇူးပြု. မှတ်သားပါ။
ကွန်ယက်တောင်းဆိုမှုများကိုတည်ငြိမ်မှုနှင့်အချိန်ကုန်များကိုပြုပြင်ခြင်း။
ဝေးလံခေါင်သီသောဖိုင်၏ပါဝင်မှုသည်ပြောင်းလဲခြင်းနှင့် MD5_File () ကို ခေါ်ဆိုနိုင်သည်။
ဤနေရာတွင် domain name ကိုအစားထိုးရန်လိုအပ်ပါကဤဥပမာတွင်ဒိုမိန်းအမည်ကို M66.net ဖြင့်အစားထိုးလိမ့်မည်။