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

MD5_File () MD5_File () ကအဘယ်ကြောင့်တုံ့ပြန်သနည်း။

M66 2025-06-03

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

 md5_file(string $filename, bool $binary = false): string|false

ဤလုပ်ဆောင်ချက်သည်ဖိုင်လမ်းကြောင်းတစ်ခုအနေဖြင့်အငြင်းပွားမှုတစ်ခုအဖြစ်ယူပြီးဖိုင်၏ MD5 checksum ကိုပြန်ပို့သည်။ သို့သော် developer များစွာသည် MD5_File () ကို အသုံးပြုသည့်အခါ မှားယွင်းသော အခြေအနေများနှင့်ကြုံတွေ့ရမည့်အခြေအနေများနှင့်ကြုံတွေ့ရလိမ့်မည်။ ဤဆောင်းပါးသည်ဤအခြေအနေကိုရှုထောင့်မျိုးစုံမှဖြစ်ပေါ်စေသည့်အကြောင်းရင်းများကိုဆန်းစစ်ပါလိမ့်မည်။

1 ။ ဖိုင်လမ်းကြောင်းအမှား

ဒါကအသုံးအများဆုံးအကြောင်းပြချက်တစ်ခုပါ။ အကယ် . ပေးထားသောဖိုင်လမ်းကြောင်း သည် မမှန်ကန်ပါက၎င်းသည်စာတို, လမ်းကြောင်းပုံစံတစ်ခုဖြစ်သည်ဖြစ်စေ,

ဥပမာ -

 $hash = md5_file('/path/to/nonexistent/file.txt');

ဤနေရာတွင် File.txt မရှိပါကသို့မဟုတ်လမ်းကြောင်းမှားယွင်းစွာစာလုံးပေါင်းသည်, မှားယွင်းစွာ ပြန်ပို့လိမ့်မည်။

2 ။ မလုံလောက်ဖိုင်ခွင့်ပြုချက်

ဖိုင်လမ်းကြောင်းသည်မှန်ကန်လျှင်ပင် MD5_File () အသုံးပြုသူသည် PHP script ည့်သည်ဖိုင်ကိုဖတ်ရန်ခွင့်ပြုချက်မရှိပါက MD5_File (များသောအားဖြင့် ဝက်ဘ် ဆာဗာအသုံးပြုသူ) သည် မှားယွင်းစွာ ပြန်ပို့သည်။

ဖြေရှင်းချက် -

File Permissions (သို့) သင်ပိုင်သောအသုံးပြုသူကိုပြောင်းလဲခြင်းဖြင့် PHP သည်ဖိုင်ကိုဖတ်ရှုရန်လုံလောက်သောခွင့်ပြုချက်ရှိသည်ကိုသေချာအောင်လုပ်နိုင်သည်။

 chmod 644 /path/to/file.txt
chown www-data:www-data /path/to/file.txt

3 ။ ဖိုင်ကိုအခြားလုပ်ငန်းစဉ်များကသော့ခတ်ထားသည်

အချို့သော operating systems နှင့် file systems များသည်အခြားပရိုဂရမ်များကရေးသားသောအခါသို့မဟုတ်သော့ခတ်ထားသည့်အခါဖိုင်ကိုဖတ်ရှုခြင်းမှအခြားပရိုဂရမ်များကိုကန့်သတ်ထားသည်။ ဤကိစ္စတွင် MD5_File () သည် ဖိုင်ကိုဖတ်ရန်ကြိုးစားသည်ဆိုပါက၎င်းသည် မှားယွင်းသော ပြန်လာလိမ့်မည်။

ဥပမာ -

ဥပမာအားဖြင့်, FTP မှတင်ထားသောသို့မဟုတ်အခြား script သို့တင်ထားသောဖိုင်ကို PHP သည်ပျက်ကွက်မှုပြ issues နာများကိုကြုံတွေ့ရနိုင်သည်။

4 ။ URL ကိုဒေသခံလမ်းကြောင်းအစားအသုံးပြုသည်

PHP's MD5_File () url ကို အသုံးပြု. url ကို parameter ကို အသုံးပြု. Parameter ကို အသုံးပြု. Parameter ကို အသုံးပြုသည်။ တကယ်တော့ဒီနည်းလမ်းဟာအမှားအယွင်းများကိုမှားယွင်းနေသည်။

ဥပမာ -

 $hash = md5_file('https://m66.net/uploads/example.zip');

Allow_URL_FOPEN ကိုဖွ င့် မယ်ဆိုရင်ဒီကုဒ်ကအောင်မြင်စွာပြေးနိုင်တယ်။ ဒီလိုမှမဟုတ်ရင် မှားယွင်းတဲ့ ပြန်လာလိမ့်မည်။

အောက်ပါနည်းလမ်းကို အသုံးပြု. code တွင် code တွင် code တွင်အတည်ပြုနိုင်သည်။

 if (!ini_get('allow_url_fopen')) {
    echo "Remote ဖိုင်တွဲလည်ပတ်မှု function ကိုဖွင့ ်. မရပါ";
}

အကြံပြုချက် - ဝေးလံခေါင်သီသော URLs များကိုမှီခိုခြင်းမပြုပါနှင့်။ local_get_contentents () ကိုဒေါင်းလုဒ် () ကိုဒေါင်းလုဒ် () ကိုဒေါင်းလုပ်ဆွဲရန်ပိုမိုလုံခြုံလိမ့်မည်။ ထို့နောက် MD5_File () ကို သုံးပါ။

5 ။ ဖိုင်သည်ဗလာသို့မဟုတ်အကျင့်ပျက်ခြစားမှုဖြစ်သည်

MD5_File () သည် အချည်းနှီးသောဖိုင်များကိုတစ်ခါတစ်ရံတွင်ဖိုင်များကိုဖြတ်နိုင်သည်။ ၎င်းသည်ပုံမှန်မဟုတ်သော်လည်းဖိုင်အခြေအနေကို ဖိုင်များ () သို့မဟုတ် fopen () + ) ကိုကိုယ်တိုင်ရှာဖွေတွေ့ရှိနိုင်သည်။

6 ။ လမ်းကြောင်းသည်အထူးအက္ခရာများသို့မဟုတ်ကိုက်ညီမှုမရှိသော encoding ပါရှိသည်

ဖိုင်လမ်းကြောင်းတွင် UTF-8 အက္ခရာများ (အထူးသဖြင့် 0 င်းဒိုးစနစ်များပေါ်တွင်) သို့မဟုတ်အသုံးပြုသူမှတင်ထားသောနံပါတ် (ဥပမာတရုတ်များ, နေရာများသို့မဟုတ်အထူးသင်္ကေတများကဲ့သို့သော path ကိုတည်ဆောက်သည့်အခါသို့မဟုတ်လမ်းကြောင်းကိုမှားယွင်းစွာခွဲခြမ်းစိတ်ဖြာနိုင်သည်။

ဥပမာ -

 $hash = md5_file('/var/www/uploads/စာချုပ်စာတမ်းA.txt'); // Path encoding ကိုက်ညီမှုဖြစ်နိုင်သည်

ဤပြ problems နာများကိုကျော်လွှားရန် realappath () ကို အသုံးပြုခြင်းသည်ကောင်းသောနည်းလမ်းဖြစ်သည်။

 $path = realpath('/var/www/uploads/စာချုပ်စာတမ်းA.txt');
$hash = md5_file($path);

7 ။ ယာယီဖိုင်များကိုဖျက်ပစ်သို့မဟုတ်ပြောင်းရွှေ့ခဲ့ကြသည်

Move_UPLOADED_File () , tmpfile ()) , သို့မဟုတ်အချို့သောအလိုအလျောက်ထုတ်လုပ်ထားသောယာယီလမ်းကြောင်းဖိုင်များကိုအသုံးပြုသောအခါဤဖိုင်များကိုဖျက်ပစ်ခြင်း, ပြောင်းရွှေ့နေစဉ်အတွင်း၎င်းတို့၏တစ်သက်တာလုံး ကို ဖျက်ပစ်ခြင်း, ပြောင်းရွှေ့ခြင်း,