PHP Development တွင် MD5_File () function သည်ဖိုင်တစ်ခု၏ MD5 hash တန်ဖိုးကိုလျင်မြန်စွာတွက်ချက်ရန်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော် developer များသည် MD5_File () သည် Windows, Linux, MacOs များကဲ့သို့သော operating system ပတ် 0 န်းကျင်တွင်အသုံးပြုသော PHP applications () ကို အသုံးပြု. PHP applications () debugging လုပ်ခြင်းသို့မဟုတ် debugging လုပ်ခြင်းသည်မမျှော်လင့်သောပြ problems နာအချို့ကိုကြုံတွေ့ရနိုင်သည်။ ဤကွဲပြားခြားနားမှုများနှင့်ရှေ့နောက်ညီညွတ်မှုကိုသေချာစေရန်ဤကွဲပြားခြားနားမှုများကိုနားလည်ရန်မရှိမဖြစ်လိုအပ်သည်။
ကွဲပြားခြားနားသော operating systems ကွဲပြားခြားနားသောလမ်းကြောင်း sepplicators ကိုသုံးပါ:
Windows သည် backslash များကိုအသုံးပြုသည် ( \ )
Linux နှင့် MacOS တို့သည်ရှေ့သို့ slash ( / )
PHP သည်ပြည်တွင်း၌တစ်စိတ်တစ်ပိုင်းကိုတစ်စိတ်တစ်ပိုင်းအရသဟဇာတဖြစ်သော်လည်း MD5_File () stitching လမ်းကြောင်းများကိုကိုင်တွယ်ရန် MD5_File () ကို သုံးသောလမ်းကြောင်းကိုသုံးရန်လမ်းကြောင်းကိုအသုံးပြုရန်အတွက် directority_separator သို့မဟုတ် realapher () ကို သုံးရန်အကြံပြုထားဆဲဖြစ်သည်။ ဥပမာအားဖြင့်:
$path = __DIR__ . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'file.txt';
echo md5_file($path);
စာသားဖိုင်များသည်မတူညီသောစနစ်များတွင်မတူညီသော encodings နှင့် line strings များရှိနိုင်သည် ( Windows သည်အသုံးပြုသည်, Linux သည် \ n ကို အသုံးပြုသည်။ ၎င်းသည် MD5_File ၏ရလဒ်များကိုတိုက်ရိုက်သက်ရောက်မှုရှိသည်။ ဖိုင်တွဲနှစ်ခုပါ 0 င်သည့်အကြောင်းအရာများသည်ပုံစံအမျိုးမျိုးရှိနေသော်လည်း၎င်းတို့၏ MD5 တန်ဖိုးများသည်ကွဲပြားခြားနားသောဇာတ်ကောင်များနှင့်ကွဲပြားခြားနားသည်။
ဖြေရှင်းချက် -
ဖိုင်များကိုမထုတ်လုပ်မီပုံမှန်အကြောင်းအရာများအတွက်ဇာတ်ကောင်များကိုအဆုံးသတ်ခြင်း
သို့မဟုတ်စာသားကွဲပြားခြားနားမှုများ 0 င်ရောက်စွက်ဖက်ခြင်းကိုရှောင်ရှားရန် Binary နှိုင်းယှဉ်ချက်များကိုအသုံးပြုပါ
Unix ကဲ့သို့သောစနစ်များ (ထိုကဲ့သို့သော Linux နှင့် MacOS ကဲ့သို့) တွင်ခွင့်ပြုချက်မော်ဒယ်သည်အတော်အတန်တင်းကျပ်သည်။ PHP script ကိုအသုံးပြုနေသောအသုံးပြုသူသည်ပစ်မှတ်ဖိုင်ကိုဝင်ရောက်ရန်ခွင့်ပြုချက်မရှိပါက MD5_File () သည် မှားယွင်းစွာ ပြန်လာလိမ့်မည်။
လက်တွေ့ကျသောအပလီကေးရှင်းများတွင်အကြံပြုသည် -
if (is_readable($file)) {
$hash = md5_file($file);
} else {
// အမှားအယွင်းများကိုမှတ်တမ်းတင်ခြင်းသို့မဟုတ်ခြွင်းချက်များကိုကိုင်တွယ်ပါ
}
ထို့အပြင် File_exists () နှင့် clearstatcache () နှင့် clearstatcache () ကို ပေါင်းစပ်နိုင်သည်။
Windows File System များသည်များသောအားဖြင့်ဖြစ်ရပ်များကိုမခံစားနိုင်သောအရာများဖြစ်ပြီး Linux / Macos စနစ်များသည်များသောအားဖြင့်ဖြစ်ရပ်များကိုအများအားဖြင့်အထိခိုက်မခံပါ။ ဆိုလိုသည်မှာ MD5_File ('myfile.txt') နှင့် MD5_File ('myfile.txt') နှင့် MD5_File (MyFile.txt ') သည် Linux ပေါ်တွင်ကွဲပြားသောဖိုင်နှစ်မျိုးကိုဆိုလိုသည်။
ဖြန့်ကျက်နေသည့်အခါ path case ၏ရှေ့နောက်ညီညွတ်မှုကိုအထူးဂရုပြုသင့်ပြီးစည်းလုံးညီညွတ်ရေးဆိုင်ရာသတ်မှတ်ချက်များကိုထောက်ခံရန်အကြံပြုပါသည်။
အချို့သောစနစ်များ (ဥပမာ NFS, SMB) သို့မဟုတ် virtual file systems ( PHP: // မှတ်ဉာဏ် ကဲ့သို့သော virtual file system) ကိုအသုံးပြုသည်။ ဤဖိုင်စနစ်များသည်အထူးသဖြင့် MD5_File () ကို ပြုပြင်မွမ်းမံခြင်း,
ဝေးလံခေါင်သီသောအရင်းအမြစ်ကိုဆေးကြောသောအခါ၎င်းကို curl မှတစ်ဆင့်ဒေသခံယာယီလမ်းကြောင်းသို့ဒေါင်းလုဒ်လုပ်ရန်အကြံပြုသည်။ ထို့နောက် MD5_File () ကို အသုံးပြုပါ။
$temp = tempnam(sys_get_temp_dir(), 'md5_');
file_put_contents($temp, file_get_contents('https://m66.net/example.zip'));
echo md5_file($temp);
unlink($temp);
အကယ်. လမ်းကြောင်း သည် apcii မဟုတ်သောဇာတ်ကောင်များပါ 0 င်ပါက, တရုတ်, ဂျပန်,
ထိုသို့သောအခြေအနေမျိုးတွင်အောက်ပါတို့သည် -
MB_ConVert_encoding () လမ်းကြောင်းများကို system default encoding သို့ပြောင်းရန်
သို့မဟုတ် UTF-8 encoding ကို uniformly ဖြစ်အောင်လုပ်ပြီးဖိုင်အမည်ကိုသေချာအောင်လုပ်ပါ
MD5_File () ၏ syntax သည်ပလက်ဖောင်းများအနှံ့တွင်အသုံးပြုသောအခါ, place path format နှင့်အညီ operating system များအကြားကွဲပြားခြားနားမှုများအကြောင်းအာရုံစိုက်ရန်လိုအပ်နေဆဲဖြစ်ပါတယ်။ ကောင်းမွန်သော coding သတ်မှတ်ချက်များနှင့်လမ်းကြောင်းစီမံခန့်ခွဲမှုမှတစ်ဆင့်သဘာဝပတ်ဝန်းကျင်ကွဲပြားခြားနားမှုများကြောင့်ဖြစ်သည့် Hash လိုက်နာမှုကိုထိရောက်စွာလျှော့ချနိုင်သည်။