လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MD5_File () ဖိုင်ကို 0 င် ရောက်. မရပါကဘာလုပ်ရမည်နည်း။

MD5_File () ဖိုင်ကို 0 င် ရောက်. မရပါကဘာလုပ်ရမည်နည်း။

M66 2025-06-06

PHP တွင် MD5_File () သည်အလွန်အဆင်ပြေသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင် MD5_File () မှားယွင်းသောအခြေအနေများသည်မှားယွင်းသော အခြေအနေများနှင့်ကြုံတွေ့ရနိုင်သည်။ ဆိုလိုသည်မှာများသောအားဖြင့်ဖိုင်သည်လက်လှမ်းမမီနိုင်ဟုဆိုလိုသည်။ ဒီတော့ဒီပြ problem နာကိုဘယ်လိုဖြေရှင်းသင့်သလဲ။ အောက်ပါအတိုင်းအသေးစိတ်အချက်အလက်များမှအသေးစိတ်ခွဲခြမ်းစိတ်ဖြာခြင်းကိုပြုလုပ်လိမ့်မည်။

1 ။ ဖိုင်လမ်းကြောင်းမှန်ကိုစစ်ဆေးပါ

အသုံးအများဆုံးပြ problem နာမှာ Path Errors ( ) MD5_File () သည် ဖိုင်အတွက်အပြည့်အဝသို့မဟုတ်ဆွေမျိုးလမ်းကြောင်းလိုအပ်သည်။ အကယ်. လမ်းကြောင်းကိုမှားယွင်းစွာရေးသားထားပါက function သည်ဖိုင်ကိုမသုံးနိုင်ပါ။

နမူနာကုဒ်:

 $hash = md5_file('/var/www/html/uploads/sample.txt');
if ($hash === false) {
    echo "ဖိုင်ကို 0 င်ရောက်နိုင်ခြင်းသို့မဟုတ်မတည်ရှိနိုင်ပါ。";
}

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:

  • File_exists () ဖိုင်သည်ပထမ ဦး ဆုံးတည်ရှိသည်ရှိမရှိဆုံးဖြတ်ရန် () ကို သုံးပါ။

     if (!file_exists('/var/www/html/uploads/sample.txt')) {
        echo "ဖိုင်မတည်ရှိပါဘူး。";
    }
    
  • အကယ်. ၎င်းသည်ဆွေမျိုးလမ်းကြောင်းဖြစ်လျှင်, ကွပ်မျက်အခြေအနေတွင်လမ်းကြောင်းမှန်ပေါ်ရှိလမ်းကြောင်းမှန်ကိုသေချာအောင်လုပ်ပါ။ ဥပမာအားဖြင့် __Dir__ ပေါင်းစပ်မှုကို အသုံးပြု. ပကတိလမ်းကြောင်းတည်ဆောက်ရန်ပိုမိုလုံခြုံသည်။

2 ။ ခွင့်ပြုချက်ပြ issues နာများ

လမ်းကြောင်းမှန်ပေါ်ရှိနေသော်လည်းခွင့်ပြုချက်မလုံလောက်ခြင်းကြောင့်ဖိုင်ကိုဖတ်မရနိုင်ပါ။ MD5_File () သည် PHP scripts များကို Exitut လုပ်ထားသောအသုံးပြုသူများ (များသောအားဖြင့် www-data www-data wwite swords ) ကိုဖတ်ရန်လိုအပ်သည်။

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:

  • ဖိုင်ခွင့်ပြုချက်ကိုကြည့်ရန် command line ကိုသုံးပါ။

     ls -l /var/www/html/uploads/sample.txt
    
  • ခွင့်ပြုချက်ကိုချိန်ညှိပါ။

     chmod 644 /var/www/html/uploads/sample.txt
    chown www-data:www-data /var/www/html/uploads/sample.txt
    
  • ခွင့်ပြုချက်ကိုရှာဖွေရန် PHP ကိုသုံးပါ။

     if (!is_readable('/var/www/html/uploads/sample.txt')) {
        echo "ဖိုင်မဖတ်နိုင်သောဖိုင်မရှိပါ。";
    }
    

3 ။ ဖိုင်ကိုသော့ခတ်ထားခြင်းသို့မဟုတ်သိမ်းပိုက်ထားခြင်းရှိမရှိ

အချို့သောဖြစ်ရပ်များတွင် MD5_File () ဖိုင်ကိုအခြားပရိုဂရမ်များကရေးထားသည့်အခါသို့မဟုတ်အလုပ်များချမှတ်သောအခါပျက်ကွက်နိုင်သည်။ ဥပမာအားဖြင့်, အချို့သော system သော့ခတ်ထားသောပြည်နယ်များအရတင်ထားသောသို့မဟုတ်ဖိုင်များပြုလုပ်နေသောဖိုင်များသည်ယာယီလက်လှမ်းမမီနိုင်ပါ။

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:

  • ၎င်းသည်တစ်ပြိုင်နက်တည်းရေးသားခြင်းကြောင့်ဖြစ်ရတဲ့ပြ a နာလားဆိုတာကိုစစ်ဆေးပါ

  • fopen () နှင့်ဖတ်ရန်ကြိုးစားပါ,

 $handle = @fopen('/var/www/html/uploads/sample.txt', 'r');
if ($handle === false) {
    echo "ဖိုင်များကိုသိမ်းပိုက်လျက်ရှိသည်。";
} else {
    fclose($handle);
}

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

အကယ်. တရုတ်သို့မဟုတ်အထူးသင်္ကေတများကိုဖိုင်လမ်းကြောင်းတွင်ပါ 0 င်ပါက operating system နှင့် PHP သည်ကိုက်ညီမှုမရှိသော encoding ကြောင့်ခွဲခြားသတ်မှတ်ရန်ပျက်ကွက်လိမ့်မည်။

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:

  • utf8_encode () , mb_convertert_encoding () ကဲ့သို့သောလုပ်ဆောင်ချက်များကို အသုံးပြု. Path encoding လုပ်ရန် () ကိုအသုံးပြုပါ။

  • ၎င်း၏မှန်ကန်မှုကိုသေချာစေရန်အမှန်တကယ်အသုံးပြုသောလမ်းကြောင်း string ကိုပုံနှိပ်ပါ။

     $file = '/var/www/html/uploads/တရုတ်စာရွက်စာတမ်းများ.txt';
    echo "ခေြလမ်း:" . $file;
    

5 ။ HTTP / Remote လိပ်စာကိုသုံးပါ

MD5_File () သည် URL များကို PHP 5.0 မှစတင်သော parameters များအနေဖြင့်ကူညီသည်။ သို့သော်၎င်းသည် Allow_URL_FOPENS ၏ချိန်ညှိချက်များပေါ်တွင်မူတည်သည်။

နမူနာကုဒ်:

 $hash = md5_file('http://m66.net/files/sample.txt');

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:

  • php.ini တွင် cleas_url_fopen = သေချာအောင်လုပ်ပါ

  • Remote ဖိုင် URL ကိုပုံမှန်အားဖြင့်လက်လှမ်းမီမှုရှိမရှိစစ်ဆေးပါ

  • configuration ကိုကြည့်ရန် ini_get () ကို သုံးပါ။

     if (!ini_get('allow_url_fopen')) {
        echo "ယခု PHP configuration ကိုဖွင့်မထားဘူး allow_url_fopen。";
    }
    
  • file_get_contontents () ကို သင်ပထမ ဦး ဆုံးရယူနိုင်မလားဆိုတာကိုသုံးပါ။

     $content = @file_get_contents('http://m66.net/files/sample.txt');
    if ($content === false) {
        echo "ဝေးလံခေါင်သီသောဖိုင်များကို ဆက်သွယ်. မရပါ。";
    }
    

6 ။ အမှားမျက်နှာပြင်ကိုဖွင့်ပြီး log tracking ကိုဖွင့်ပါ

PHP အမှားအစီရင်ခံစာများကိုဖွင့်ခြင်းကအမှား၏အကြောင်းရင်းကိုပိုမိုတိုက်ရိုက်ကြည့်ရှုရန်သင့်အားကူညီနိုင်သည်။

 ini_set('display_errors', 1);
error_reporting(E_ALL);

သို့မဟုတ်အသေးစိတ်အချက်အလက်များပါ 0 င်သည့် Apache / Nginx ၏ abrache / nginx ၏ error_log မှတ်တမ်းဖိုင်ကိုစစ်ဆေးပါ။

ကောက်ချက်

MD5_File () သည် FILE High ဖိုင်တွဲဖက်မှုလိုအပ်သည်။ မှားယွင်းသော ပြန်လာ၏ပြ problem နာကိုကြုံတွေ့ရသောအခါလမ်းကြောင်း, ခွင့်ပြုချက်များ, ဖိုင်အခြေအနေ, encoding နှင့် php configuration ကဲ့သို့သောရှုထောင့်အမျိုးမျိုးမှကြည့်ရှုရန်အကြံပြုသည်။ ၎င်း၏အခြေခံမှီခိုမှုများကိုနားလည်ခြင်းသည် File Operation ပြ problems နာများကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်နိုင်ပြီးကျွန်ုပ်တို့၏ကျင့်ထုံး၏တည်ငြိမ်မှုနှင့်ကြံ့ခိုင်မှုကိုတိုးတက်စေသည်။