PHP ကိုအသုံးပြုသောအခါ MD5_File () သည် MD5_File () သည်အလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ဖိုင်၏ md5 hash တန်ဖိုးကိုတိုက်ရိုက်ရယူနိုင်သည့် MD5 hash တန်ဖိုးကိုတိုက်ရိုက်ရယူနိုင်သည့် MD5 hash တန်ဖိုးကိုတိုက်ရိုက်ရရှိနိုင်ပါသည်။ သို့သော်အချို့ဖြစ်ရပ်များတွင်လုပ်ဆောင်ချက်သည်မျှော်လင့်ထားသည့် 32-bit md5 string ကိုအစား မှားယွင်းစွာ တုံ့ပြန်နိုင်သည်။ ယခုအချိန်တွင်ကျွန်ုပ်တို့သည် root အကြောင်းအရင်းကိုရှာဖွေရန် Debug Log မှတဆင့်ပြ to နာကိုဖြေရှင်းရန်လိုအပ်သည်။
MD5_File () ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
$hash = md5_file('/path/to/file.txt');
အကယ်. ဖိုင်သည်တည်ရှိပြီးဖတ်နိုင်သည်ဆိုပါကဖိုင်၏ contents ၏ MD5 hash value (32 ဇာတ်ကောင် hexadecimal string) (32- အက်ခရာ Hexadecimal String) ကိုပြန်ပို့သည်။ ဒီလိုမှမဟုတ်ရင် မှားယွင်းတဲ့ ပြန်လာလိမ့်မယ်။
ပြ problems နာများကိုထိထိရောက်ရောက်ဖြေရှင်းနိုင်ရန်အတွက် MD5_File () မှားယွင်းသော ပြန်လာရန်စေနိုင်သောဘုံအကြောင်းပြချက်များကို ဦး စွာရှင်းလင်းရမည်။
ဖိုင်လမ်းကြောင်းအမှားသို့မဟုတ်မတည်ရှိပါဘူး
ဖိုင်အတွက်ခွင့်ပြုချက်မရှိပါ
ဖိုင်များကိုအခြားလုပ်ငန်းစဉ်များကသိမ်းပိုက်သို့မဟုတ်သော့ခတ်နေကြသည်
PHP ပတ်ဝန်းကျင်ကို Open_basedir ကန့်သတ်ခြင်းကဲ့သို့သော PHP ပတ်ဝန်းကျင်ကိုကန့်သတ်ထားသည်
ဖိုင်စနစ်ချွင်းချက်သို့မဟုတ်ဟာ့ဒ်ဝဲအမှား
ပြ problems နာများကိုခြေရာခံရန်လွယ်ကူစေရန်အမှားအတွက် logging ထည့်သွင်းနိုင်သည်သို့မဟုတ် PHP.ini ဖိုင်ကိုပြင်ဆင်ခြင်းဖြင့်အမှားအယွင်းများကိုဖွင့်နိုင်သည်။
PHPP.INI တွင်အမှားမှတ်တမ်းများကိုဖွင့်ပြီး log file လမ်းကြောင်းကိုဖွင့်ပါ။
log_errors = On
error_log = /var/log/php_errors.log
PHP (သို့) ဝက်ဘ်ဆာဗာကိုပြန်ဖွင့်ပြီးနောက် PHP ၏ runtime အမှားများအားလုံးသည် log file သို့ရေးသားထားသည်။
System Logs အပြင် developer များသည်အသေးစိတ်အချက်အလက်များအတွက်စိတ်ကြိုက်မှတ်တမ်းများကိုထည့်နိုင်သည်။ ဥပမာအားဖြင့်:
$file = '/path/to/file.txt';
if (!file_exists($file)) {
error_log("ဖိုင်မတည်ရှိပါဘူး: " . $file);
} elseif (!is_readable($file)) {
error_log("ဖိုင်မဖတ်နိုင်သောဖိုင်မရှိပါ: " . $file);
} else {
$md5 = md5_file($file);
if ($md5 === false) {
error_log("md5_file() ပြန်လာ false: " . $file);
} else {
error_log("စာချုပ်စာတမ်း MD5: " . $md5);
}
}
ဤနည်းအားဖြင့်ခြေလှမ်းတစ်ခုစီ၏အခြေအနေကိုမှတ်တမ်းတင်နိုင်သည်။ ၎င်းသည်ပြ problem နာကိုလျင်မြန်စွာရှာဖွေရန်ကူညီသည်။
ထုတ်လုပ်မှုပတ် 0 န်းကျင်များတွင် Debug Information ကို Debug Information ကိုအခြား module များအပေါ်မထိခိုက်စေရန်စနစ်အမှားမှတ်တမ်းအစား,
function debug_log($message) {
$logFile = '/var/log/md5_debug.log';
error_log(date('[Y-m-d H:i:s] ') . $message . "\n", 3, $logFile);
}
အသုံးပြုမှုဥပမာ -
debug_log("开始计算စာချုပ်စာတမ်း MD5:" . $file);
ပြင်ပ PHP, ဖိုင်အဆင့်ကိုအတည်ပြုရန် command line tool ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်:
ls -l /path/to/file.txt
md5sum /path/to/file.txt
ထို့အပြင်ဖိုင်မျိုးစုံသည်ပုံမှန်အားဖြင့် MD5 တန်ဖိုးများကိုတွက်ချက်နိုင်မလားဆိုတာအလိုအလျောက်စစ်ဆေးရန် scripts များကိုလည်းသင်ရေးနိုင်သည်။
သင့်တွင်အောက်ပါကုဒ်တွင်ပြ problems နာများရှိသည်ဆိုပါစို့။
$url = 'https://m66.net/files/sample.zip';
$path = '/var/www/files/sample.zip';
$md5 = md5_file($path);
if ($md5 === false) {
error_log("无法获取စာချုပ်စာတမ်း {$path} ၏ MD5 အဘိုး");
}
ကျနော်တို့အတည်ပြုရန်လိုအပ်သည်:
နမူနာ ,zip ဖိုင်သည်အမှန်တကယ်တည်ရှိနေသော directory တွင်ရှိ,
PHP လုပ်ငန်းစဉ်သည်လမ်းကြောင်းကိုဝင်ရောက်ရန်ခွင့်ပြုချက်ရှိမရှိ။
ဖိုင်ကိုသိမ်းပိုက်သောအခြားပရိုဂရမ်ရှိပါသလား။
Debug မှတ်တမ်းများကိုတဖြည်းဖြည်းစစ်ဆေးခြင်းနှင့်ပေါင်းထည့်ခြင်းအားဖြင့်သင်သည်ပြ troubl နာဖြေရှင်းခြင်းနှင့်နောက်ဆုံးတွင်ပြ problems နာများကိုပိုမိုလွယ်ကူစွာကျဉ်းမြောင်းနိုင်သည်။
MD5_File ၏ပြ problem နာ () မှားယွင်းသော ပြန်လာသည့်အရာဖြစ်သော်လည်းသင့်တော်သော debugging method များနှင့်သစ်ထုတ်လုပ်ရေးစွမ်းရည်များကိုသင်ကျွမ်းကျင်သည်အထိအလွယ်တကူဖြေရှင်းနိုင်သည်။ ဖွံ့ဖြိုးတိုးတက်မှုသို့မဟုတ်ထုတ်လုပ်မှုပတ် 0 န်းကျင်များတွင်သစ်ထုတ်လုပ်ခြင်းသည်ပြ problems နာများကိုရှာဖွေတွေ့ရှိခြင်းနှင့်ဖြေရှင်းခြင်းအတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းကိုကျွမ်းကျင်စေခြင်းနှင့်ကောင်းစွာအသုံးပြုခြင်းသည်စုံစမ်းစစ်ဆေးမှုနှင့် code အားကြံ့ခိုင်မှုကိုများစွာတိုးတက်စေနိုင်သည်။