0 က်ဘ်ဆိုက်၏အွန်လိုင်းသို့မဟုတ်အသစ်ပြောင်းခြင်းလုပ်ငန်းစဉ်အတွင်းကျွန်ုပ်တို့သည်အချို့သောသော့ဖိုင်များသည်မတော်တဆပြောင်းလဲခြင်းသို့မဟုတ်မတော်တဆပြောင်းလဲခြင်းမရှိသေးကြောင်းသေချာစေရန်လိုအပ်သည်။ PHP သည်အလွန်လက်တွေ့ကျသော function ကိုထောက်ပံ့ပေးသည် ။
MD5_File () သည် PHP ၏ built-in function ဖြစ်သည်။ ၎င်းသည် parameter တစ်ခုအနေဖြင့်ဖိုင်လမ်းကြောင်းတစ်ခုယူပြီးဖိုင်၏ contents ၏ MD5 hash string ကိုပြန်ပို့သည်။ အကယ်. ဖိုင်မတည်ရှိပါသို့မဟုတ်မဖတ်နိုင်ပါက မှားယွင်းစွာ ပြန်လာလိမ့်မည်။
$hash = md5_file('config.php');
echo $hash;
အထက်ပါကုဒ်သည် Config.php ဖိုင်၏ MD5 တန်ဖိုးကိုထုတ်ပေးလိမ့်မည်။
Code ကိုဖြန့်ချိသောအခါ MD5 တန်ဖိုးကို Advance file တစ်ခုစီကိုကြိုတင်တွက်ချက်နိုင်သည်။ ဒီမှာရိုးရှင်းတဲ့လျှောက်လွှာဥပမာတစ်ခုပါ။
ပစ်မှတ်ဖိုင်များ၏ MD5 တန်ဖိုးများကိုမှတ်တမ်းတင်ရန်နေရာချထားခြင်းမပြုမီအောက်ပါ script ကို run သည်။
$files = [
'index.php',
'config.php',
'lib/functions.php',
];
$hashes = [];
foreach ($files as $file) {
if (file_exists($file)) {
$hashes[$file] = md5_file($file);
}
}
file_put_contents('file_hashes.json', json_encode($hashes, JSON_PRETTY_PRINT));
ဤ script သည်ဖိုင်များအားလုံး၏ hash တန်ဖိုးများကိုမှတ်တမ်းတင်ထားသော File_hashes.json ဖိုင်ကိုထုတ်ပေးလိမ့်မည်။
ဖြန့်ကျက်မှုပြီးပြည့်စုံပြီးသည့်နောက်တွင်လက်ရှိဖိုင်၏ MD5 တန်ဖိုးသည်မူရင်းနှင့်ကိုက်ညီမှုရှိမရှိအခြား script တစ်ခုကို run နိုင်သည်။
$hashes = json_decode(file_get_contents('file_hashes.json'), true);
foreach ($hashes as $file => $originalHash) {
if (!file_exists($file)) {
echo "ဖိုင်မတည်ရှိပါဘူး:$file\n";
continue;
}
$currentHash = md5_file($file);
if ($currentHash !== $originalHash) {
echo "ဖိုင်ကိုပြုပြင်ပြီးပြီ:$file\n";
echo "ခြားနားချက်ကိုကြည့်ပါ:https://m66.net/diff-viewer?file=" . urlencode($file) . "\n";
} else {
echo "ဖိုင်မပြောင်းလဲပါ:$file\n";
}
}
၎င်းသည်ကုဒ်သည်နေရာချထားပြီးနောက်ကုဒ်များသည်ဖြန့်ကျက်ပြီးနောက်တွင်နဂိုအတိုင်းရှိနေဆဲဖြစ်သည်ဟုကျွန်ုပ်တို့အားထိရောက်စွာကူညီနိုင်သည်။
MD5_File () သည်သေးငယ်သောဖိုင်များကိုမြန်မြန်ဆန်ဆန်စစ်ဆေးခြင်းအတွက်အကောင်းဆုံးဖြစ်သည်, သို့သော်ကြီးမားသောဖိုင်များအတွက်မူ,
ကျေးဇူးပြု. File_hashes.json ဖိုင်ကိုဖုံးအုပ်ထားခြင်းမရှိသေးကြောင်းသေချာအောင်လုပ်ပါ။ ၎င်းကိုစနစ်သော့ခတ်ခြင်းသို့မဟုတ်ထပ်တူပြုခြင်းစနစ်များကိုဖြန့်ကျက်ခြင်းဖြင့်ကာကွယ်နိုင်သည်။
အကယ်. သင်သည် CI / CD tools များကိုအလိုအလျောက်ဖြန့်ကျက်မှုဖြစ်စဉ်တစ်ခုတွင်အသုံးပြုပါကဤနှိုင်းယှဉ်ချက် script ကိုပိုက်လိုင်းထဲသို့သင်ပေါင်းစပ်နိုင်သည်။
MD5_File () တွင်ဖြန့်ကျက်မှုလုပ်ငန်းစဉ်အတွင်းဖိုင်ပေါင်းစည်းမှုစစ်ဆေးမှုကိုလျင်မြန်စွာနှင့်ထိရောက်စွာနားလည်နိုင်ပြီးဖြန့်ကျက်ခြင်းအရည်အသွေးနှင့်စနစ်လုံခြုံရေးတိုးမြှင့်ခြင်းတို့တိုးတက်လာသည်။ စဉ်ဆက်မပြတ်အသစ်ပြောင်းခြင်းများနှင့်ကြားကာလများဖြစ်စဉ်တွင်ထိုကဲ့သို့သောကိရိယာများသည်အထူးအရေးကြီးသည်။