အသုံးအများဆုံးအကြောင်းပြချက်များထဲမှတစ်ခုမှာဖိုင်လမ်းကြောင်းအမှားများဖြစ်သည်။ hash_hmac_file () ဟုခေါ်သည့်အခါဖိုင်လမ်းကြောင်းသည်တိကျမှန်ကန်ရမည်။ ကွပ်မျက်သည့်အခါ PHP သည်လက်ရှိအလုပ်လုပ်သောလမ်းညွှန်ပေါ်တွင် အခြေခံ. ဖိုင်လမ်းကြောင်းကိုခွဲခြမ်းစိတ်ဖြာသည်။ ထို့ကြောင့်, 0 င်လာသောလမ်းကြောင်းသည်မမှန်ကန်ပါကသို့မဟုတ်လက်ရှိဇာတ်ညွှန်းနှင့်နှိုင်းယှဉ်လျှင်ဆွေမျိုးလမ်းကြောင်းသည်မမှန်ကန်ပါက၎င်းသည် "ဖိုင်မတွေ့ပါ" အမှားတစ်ခုဖြစ်လိမ့်မည်။
ဖိုင်၏ပကတိလမ်းကြောင်းမှန်မှန်ကန်မှုရှိမရှိအတည်ပြုပါ။ သင်ဆွေမျိုးလမ်းကြောင်းကိုသုံးပါက PHP script သည်လက်ရှိတွင်တည်ရှိနေသောလမ်းညွှန်နှင့်သက်ဆိုင်သောလမ်းကြောင်းမှန်ပေါ်ဖြစ်ကြောင်းသေချာပါစေ။
လမ်းကြောင်းမှန်ကိုမှန်ကန်စွာခွဲခြမ်းစိတ်ဖြာရန်ဖိုင်၏ပကတိလမ်းကြောင်းကိုရရန် realape () function ကိုသုံးပါ။
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'path/to/your/file.txt'</span></span><span>;
</span><span><span class="hljs-variable">$absolute_path</span></span><span> = </span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$absolute_path</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်မတွေ့ပါ"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်အတွက်အကြွင်းမဲ့အာဏာလမ်းကြောင်းဖြစ်ပါတယ်: "</span></span><span> . </span><span><span class="hljs-variable">$absolute_path</span></span><span>;
}
</span></span>
ဖိုင်လမ်းကြောင်းမှန်ကန်သည်ဆိုလျှင်ပင် PHP process သည်ဖိုင်ကို 0 င်ရောက်ရန်ခွင့်ပြုချက်အလုံအလောက်ရှိရန်လိုအပ်သည်။ ဖိုင်၏ခွင့်ပြုချက်ကိုစနစ်တကျမသတ်မှတ်ထားပါက PHP သည်ဖိုင်အကြောင်းအရာများကိုမဖတ်နိုင်ပါ,
ဖိုင်သည် PHP အသုံးပြုသူအားဖတ်ရှုနိုင်သောခွင့်ပြုချက်ရှိမရှိစစ်ဆေးသည်။
ဖိုင်၏ခွင့်ပြုချက်ကိုပြုပြင်ရန် Chmod command ကိုသုံးပါ။ ထို့ကြောင့် PHP အသုံးပြုသူများသည်ဖိုင်ကိုဖတ်နိုင်သည်။
<span><span><span class="hljs-built_in">chmod</span></span><span> 644 path/to/your/file.txt
</span></span>
PHP သည် 0 က်ဘ်ဆိုက်ဆာဗာအသုံးပြုသူတစ် ဦး အနေဖြင့်အသုံးပြုနေပါကအသုံးပြုသူသည်ခွင့်ပြုချက်ကိုဖိုင်သို့ဖတ်ရန်သေချာအောင်လုပ်ပါ။ များသောအားဖြင့်ဝက်ဘ်ဆာဗာအသုံးပြုသူသည် www-data သို့မဟုတ် apache ဖြစ်သည်။ လက်ရှိဖိုင်၏ခွင့်ပြုချက်များကိုအောက်ပါ command မှတဆင့်ကြည့်ရှုနိုင်သည်။
<span><span><span class="hljs-built_in">ls</span></span><span> -l path/to/your/file.txt
</span></span>
PHP ၏ configuration file file ရှိ File Access States ကိုက န့ ်သတ်ချက်များရှိနိုင်သည်။ ဥပမာအားဖြင့်, open_basedir ညွှန်ကြားချက်သည် PHP ကိုအသုံးပြုနိုင်သောဖိုင်လမ်းကြောင်းကိုကန့်သတ်ထားသည်။ အကယ်. open_basedir ကို ကန့်သတ်ထားသည်ဆိုပါက PHP သည်ကန့်သတ်ချက်အပြင်ဘက်တွင်ဖိုင်များကိုကြည့်ရှုနိုင်မည်မဟုတ်ပါ။
PHPP.ini ဖိုင်တွင် open_basedir ချိန်ညှိမှုရှိမရှိစစ်ဆေးပါ။
အကယ်. ကန့်သတ်ချက်ရှိပါက Php.ini ဖိုင်ကိုပြုပြင်ပါက Open_basedir ကန့်သတ်ချက်ကိုပိတ်ရန်သို့မဟုတ်ပိတ်ရန် directory လမ်းကြောင်းကိုတိုးမြှင့်ပါ။
<span><span><span class="hljs-attr">open_basedir</span></span><span> = /var/www:/tmp:/usr/share/php:/path/to/your/files
</span></span>
ပြုပြင်ခြင်းပြီးဆုံးသွားသောအခါ Web Server သို့မဟုတ် Php-FPM ဝန်ဆောင်မှုကိုပြန်လည်စတင်ရန်သတိရပါ။
Hash_Hmac_file () မကွပ်မျက်မီဖိုင်သည်တည်ရှိကြောင်း ဦး စွာအတည်ပြုပါ။ အကယ်. ဖိုင်မရှိပါက PHP သည် "ဖိုင်မတွေ့ပါ" အမှားကိုပြန်ပေးလိမ့်မည်။
hash_hmac_file () ကို မခေါ်မီဖိုင်သည်ရှိ, မရှိစစ်ဆေးရန် file_exists () function ကိုသုံးပါ။
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'path/to/your/file.txt'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်မတည်ရှိပါဘူး"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဖိုင်တည်ရှိသည်,ဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်"</span></span><span>;
}
</span></span>
အကယ်. ဖိုင်မရှိပါကဖိုင်လမ်းကြောင်းမှန်ကန်သည်, သို့မဟုတ်ဖိုင်ကိုဖျက်ခြင်း, ပြောင်းရွှေ့ခြင်း, ပြောင်းရွှေ့ခြင်းရှိမရှိအတည်ပြုရန်လိုအပ်သည်။
ဖိုင်အမည်တွင်အထူးအက္ခရာများသို့မဟုတ် ASCII မဟုတ်သောဇာတ်ကောင်များပါ 0 င်ပါက PHP သည်အချို့သောပတ်ဝန်းကျင်တွင်ဖိုင်လမ်းကြောင်းကိုမှန်ကန်စွာခွဲခြား သတ်မှတ်. မရပါ, ဖိုင်ကိုရှာမတွေ့နိုင်ပါ။
ဖိုင်လမ်းကြောင်းတွင်တရားမဝင်သောဇာတ်ကောင်များမရှိကြောင်းသေချာပါစေ။ အထူးအက္ခရာများ (သို့) Ascii မဟုတ်သောဇာတ်ကောင်များရှိပါက MB_ConVert_encoding () သို့မဟုတ် Utf8_entode () ကဲ့သို့သောဖိုင်လမ်းကြောင်း၏ encoding ကိုပြောင်းလဲရန်သင်ကြိုးစားနိုင်သည်။
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-string">'ခေြလမ်း/ပါဝင်/အထူးအက္ခရာများ.txt'</span></span><span>;
</span><span><span class="hljs-variable">$encoded_path</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_convert_encoding</span></span><span>(</span><span><span class="hljs-variable">$file_path</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'GB2312'</span></span><span>);
</span></span>
အကယ်. ဖိုင်သည်ပုံသေတည်သည့်နေရာတွင်ရှိကြောင်းသင်ဆုံးဖြတ်ပါကအလုံခြုံဆုံးအရာမှာဆွေမျိုးလမ်းကြောင်းအစားအကြွင်းမဲ့လမ်းကြောင်းများကိုအသုံးပြုရန်ဖြစ်သည်။ PHP တွင်အလုပ်လုပ်သည့်လုပ်ငန်းသုံးရာများကြောင့်လမ်းကြောင်း resolution အမှားများကိုရှောင်ရှားလိမ့်မည်။
__Dir__ ကိုလက်ရှိဖိုင်သို့အကြွင်းမဲ့လမ်းကြောင်းကိုရရန်နှင့်မှန်ကန်မှုကိုသေချာစေရန်ဆွေမျိုးလမ်းကြောင်းကိုပေါင်းစပ်ရန် __Dir__ စဉ်ဆက်မပြတ်ကိုသုံးပါ။
<span><span><span class="hljs-variable">$file_path</span></span><span> = </span><span><span class="hljs-keyword">__DIR__</span></span><span> . </span><span><span class="hljs-string">'/path/to/your/file.txt'</span></span><span>;
</span></span>