လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MD5_File () ခြွင်းချက်ပြန်လာရန်အတွက်ကျွမ်းကျင်မှုများကို Debugging

MD5_File () ခြွင်းချက်ပြန်လာရန်အတွက်ကျွမ်းကျင်မှုများကို Debugging

M66 2025-05-31

1 ။ အခြေခံလုပ်ဆောင်ချက်များကိုပြန်လည်သုံးသပ်

MD5_File () ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

<Code> $ hash = MD5_File ('Path / file.txt); </ code>

အောင်မြင်လျှင်၎င်းသည် 32-bit hexadecimal string ကိုပြန်လည်ရရှိခဲ့သည်။ မအောင်မြင်ပါက မှားယွင်းသော ပြန်လာသည်။ အဓိကအချက်မှာ - ပျက်ကွက်မှုသည်ခြွင်းချက်တစ်ခုကိုမချထားပါ


2 ။ မှားယွင်းသောပြန်လာရန်ဘုံအကြောင်းပြချက်

1 ။ ဖိုင်လမ်းကြောင်းအမှားသို့မဟုတ်ဖိုင်မရှိပါ

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

<Code> $ hash = MD5_File ('/ md5_file) (' / path / file.txt '); အကယ်. } </ code>

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:
File_exists () ဖိုင်သည်တကယ်တည်ရှိမရှိမရှိအတည်ပြုရန်။

<code> အကယ်. (! File_exists ($ filepathath) {echo 'file ကိုမတွေ့ပါ'; } </ code>

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

ဖိုင်သည်တည်ရှိနေလျှင်ပင် PHP တည်ရှိနေသောလုပ်ငန်းစဉ်၏အသုံးပြုသူသည်ခွင့်ပြုချက်မရရှိပါ။ ၎င်းသည် MD5_File () ကိုကျရှုံးစေမည့်ခွင့်ပြုချက်ကိုမဖတ်ပါ။

ဥပမာ -

<code> chmod ('/ path / file.txt', 00000; // ခွင့်ပြုချက်အားလုံးကိုပိတ်ထားပါ $ hash = md5_file ('/ path / file.txt'); // မှားယွင်းသော </ code> ပြန်ပို့ပါ

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:
ဖိုင်သည်ခွင့်ပြုချက်ကိုဖတ်ရှုခြင်းရှိမရှိစစ်ဆေးရန် is_readable () ကို သုံးပါ။

<code> အကယ်. (! is_readable ($ filepathath)) {echo 'file ကိုဖတ်လို့မရဘူး'; } </ code>

3 ။ ဖိုင်ကိုအခြားပရိုဂရမ်များကသိမ်းပိုက်ထားသည် (Windows-Desport)

0 င်းဒိုးစနစ်များတွင်အချို့သောပရိုဂရမ်များသည်ဖိုင်များကိုသာ 0 င်ရောက်ယှဉ်ပြိုင်နေပါက PHP သည် မှားယွင်းသော ပြန်လာနိုင်သည့်ဖိုင်အကြောင်းအရာများကိုဖတ်ရှုနိုင်မည်မဟုတ်ပါ။

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:
ဖိုင်ကိုအခြားနေရာတစ်ခုသို့ကူးယူပြီး MD5_File () ဖြင့်ဖတ်ရန်ကြိုးစားပါသို့မဟုတ်၎င်းကိုသော့ခတ်ထားခြင်းရှိမရှိစစ်ဆေးရန်အခြားကိရိယာများကိုသုံးပါ။

4 ။ ဖိုင်သည်ကြီးမားလွန်းပြီးမှတ်ဉာဏ်ကန့်သတ်ချက်ထက်ကျော်လွန်သည်

MD5_File () streaming ဖတ်သည့်ဖတ်ရှုခြင်းကိုအသုံးပြု သည်

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:
memorom_limit settings ကိုသင့်လျော်စွာတိုးတက်အောင်လုပ်ပါသို့မဟုတ် command-line scripts (များသောအားဖြင့်ပိုမိုသက်သောင့်သက်သာရှိသောကန့်သတ်ချက်များ) ကိုအသုံးပြုခြင်း။

5 ။ local လမ်းကြောင်းအစား URL ကို သုံး. ခွင့်ပြုပါ

MD5_File () သည် URLs များမှတဆင့် Remote ဖိုင်များကိုစာဖတ်ခြင်းကိုပံ့ပိုးသည်။

<Code> $ hash = md5_file (http://m66.net/files/samplet.txt '); </ code>

PHPP.ini တွင် Allow_URL_FOPEN ကို ဖွင့်ထားမှသာထိုကဲ့သို့သောခေါ်ဆိုမှုသည်အောင်မြင်လိမ့်မည်။ ဒီ option ကို enable မလုပ်ရင်ပြန်လာတဲ့တန်ဖိုးက မှားတယ်

ပြ esh နာဖြေရှင်းခြင်းအကြံပြုချက်များ:
configuration file ကိုစစ်ဆေးပါသို့မဟုတ် Code ဖြင့်အတည်ပြုပါ။

<code> အကယ်. (! Ini_get (Allow_url_fopen ')) {echo' အဝေးမှဖိုင်ဖတ်နေတာကို enable မလုပ်နိုင် '; } </ code>

3 ။ ကျွမ်းကျင်မှုနှင့်လက်တွေ့စုံစမ်းစစ်ဆေးမှု debugging

1 ။ နောက်ဆုံးအမှားမက်ဆေ့ခ်ျကိုရရန် error_get_last ()

<Code> $ hash = md5_file ($ filpath); အကယ်. ($ hash === fiss) {Print_R (error_get_last ())) လျှင်။ } </ code>

ဤလုပ်ဆောင်ချက်သည်နောက်ဆုံး runtime အမှားအယွင်းများနှင့်ပတ်သက်သောအသေးစိတ်အချက်အလက်များကိုဖော်ပြနိုင်သည်။

2 ။ မှတ်တမ်းစနစ်နှင့်ပေါင်းစပ်။ အမှားအယွင်းများကိုမှတ်တမ်းတင်ပါ

Tracking ကိုလွယ်ကူချောမွေ့စေရန် LOG သို့အမှားအချက်အလက်များကိုရေးရန်အကြံပြုသည်။

<code> အကယ်. (($ hash = md5_file) === filpate) === filpath) {error_log ('error_file) {error_log (' MD5_File) ။ Print_r (error_get_last (), } </ code>

3 ။ FOPEN () နှင့်အခြားလုပ်ဆောင်ချက်များကိုအသုံးပြုရန်ကြိုးစားပါဖိုင်ကိုဖတ်လို့မရလျှင်စစ်ဆေးရန်ကြိုးစားပါ

တစ်ခါတစ်ရံဖိုင်ကိုယ်တိုင်တွင်ပြ problem နာမရှိပါ။ သို့သော်လမ်းကြောင်းအမှားများသည် stitching သို့မဟုတ် variable ညစ်ညမ်းမှုကြောင့်ဖြစ်သည်။ သင်က fopen နှင့်အတူကြိုးစားနိုင်ပါတယ် () :

<code> အကယ်. (! $ လက်ကိုင် = @Fopen) ($ filepopen) ($ filepoPath, RB ')) {echo' file offering ''; } </ code>