PHP တွင် File_exists () သည် ဖိုင် (သို့) လမ်းညွှန်တစ်ခုရှိမရှိဆုံးဖြတ်ရန်အသုံးပြုသောအလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ သို့သော်သင်္ကေတအချိတ်အဆက်ကိုတွေ့သောအခါမမျှော်လင့်သောပြ problems နာအချို့ပေါ်ပေါက်လာနိုင်သည်။ ဤ "တွင်း" ကိုနားလည်ခြင်းသည် developer များအတွက်အလွန်အရေးကြီးသည်။
Unix / Linux Systems တွင်သင်္ကေတ link သည်အခြားဖိုင်သို့မဟုတ်လမ်းညွှန်ကိုညွှန်ပြသောအထူးဖိုင်အမျိုးအစားဖြစ်သည်။ ၎င်းကို "shortcut" အဖြစ်မှတ်ယူနိုင်ပြီးဒေတာအကြောင်းအရာကိုကိုယ်တိုင်မပါ 0 င်သော်လည်းအမှန်တကယ်တည်ရှိသည်ဟူသောလမ်းကြောင်းကိုထောက်ပြသည်။
PHP တွင် File_exists () သည် link target တည်ရှိမှုရှိမရှိအမှန်တကယ်စစ်ဆေးနေသည်။ ဒါကအရမ်းအရေးကြီးတယ်
<span><span><span class="hljs-title function_ invoke__">symlink</span></span><span>(</span><span><span class="hljs-string">'/path/to/real/file.txt'</span></span><span>, </span><span><span class="hljs-string">'/path/to/link.txt'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">file_exists</span></span><span>(</span><span><span class="hljs-string">'/path/to/link.txt'</span></span><span>); </span><span><span class="hljs-comment">// အမှန်တကယ်စစ်ဆေးမှုသည် /path/to/real/file.txt တည်ရှိပါဘူး</span></span><span>
</span></span>
သင်္ကေတ link ကိုယ်နှိုက်သည်တည်ရှိပါက၎င်းသည်ပစ်မှတ်ထားသောဖိုင်ကိုဖျက်ပစ်ခြင်းသို့မဟုတ်မတည်ရှိ ပါ ။ ၎င်းသည်လွဲမှားစွာလွဲမှားစွာပြုလုပ်နိုင်သည်။
<span><span><span class="hljs-comment">// ယူဆချက် /tmp/link.txt သင်္ကေတ link ကိုဖြစ်ပါတယ်,ဘက်ရိခြင်း /tmp/missing.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-string">'/tmp/link.txt'</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-comment">// အမှန်တကယ် output ကိုဖြစ်ပါတယ် “不တည်နေ”,သော်လည်း /tmp/link.txt ဖိုင်ကိုယ်တိုင်ရှိနေသေးသည်</span></span><span>
}
</span></span>
File_exists () သည်လမ်းကြောင်းသည်သင်္ကေတ link ဖြစ်ကြောင်းမပြောနိုင်ပါ, ၎င်းသည်ပစ်မှတ်ထားဖိုင်တည်ရှိမှုရှိ, လမ်းကြောင်းသည်သင်္ကေတ link ဖြစ်ကြောင်းရှင်းရှင်းလင်းလင်းသိရန်လိုအပ်ပါက is_link () ကို အသုံးပြုသင့်သည်။
သင်္ကေတ link အထောက်အပံ့သည် Windows နှင့် Linux အတွက်အတိအကျမတူပါ။ 0 င်းဒိုးတွင်သင်္ကေတ links များကိုဖန်တီးရန်အုပ်ချုပ်ရေးဆိုင်ရာအခွင့်အရေးများကိုဖန်တီးရန်စီမံခန့်ခွဲမှုဆိုင်ရာအခွင့်အရေးများလိုအပ်သည်။ ထို့ကြောင့်ပုံဆောင်ဆက်သွယ်မှုယုတ္တိဗေဒကိုမှီခိုခြင်းသည်အစီအစဉ်များကိုအချို့သောပလက်ဖောင်းပေါ်တွင်မကိုက်ညီစွာပြုမူရန်ဖြစ်စေနိုင်သည်။
ပုံဆောင်ဆက်သွယ်မှုများသည်ဆွေမျိုးလမ်းကြောင်းများကိုသုံးသောအခါ, အလုပ်လုပ်ရန်လမ်းညွှန်သည်ကွဲပြားခြားနားပါက၎င်းသည် file_exists () တရားစီရင်ခြင်းအမှားများကိုဖြစ်ပေါ်စေနိုင်သည်။ ဥပမာအားဖြင့် CLI သည်ဝဘ်ပတ်ဝန်းကျင်တွင်အလုပ်လုပ်သောလမ်းညွှန်များနှင့်ကွဲပြားခြားနားသည်။ ၎င်းသည် link ကိုမှန်ကန်စွာဖြေရှင်းခြင်းမှတားဆီးနိုင်သည်။
အကယ်. လမ်းကြောင်းတစ်ခုသည် symlink တစ်ခုရှိမရှိသင်သိလိုပါက File_exists () ကို မသုံးပါနှင့်။
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_link</span></span><span>(</span><span><span class="hljs-string">'/path/to/symlink'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"သင်္ကေတ link ကိုဖြစ်ပါတယ်"</span></span><span>;
}
</span></span>
သင် Readlink () ကို သုံးနိုင်သည်။ လမ်းကြောင်းကိုသင်္ကေတ link မှညွှန်ပြရန်, ထို့နောက် file_exists () ကိုပေါင်းစပ်ရန် file_exists () ကို ပေါင်းစပ်ရန် () fly_exists () ကိုပေါင်းစပ်နိုင်သည်။
<span><span><span class="hljs-variable">$path</span></span><span> = </span><span><span class="hljs-string">'/path/to/symlink'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_link</span></span><span>(</span><span><span class="hljs-variable">$path</span></span><span>)) {
</span><span><span class="hljs-variable">$target</span></span><span> = </span><span><span class="hljs-title function_ invoke__">readlink</span></span><span>(</span><span><span class="hljs-variable">$path</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">$target</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>
Realpath () သည် သင်္ကေတ link ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်စစ်မှန်သောလမ်းကြောင်းကိုပြန်ပို့သည်။ သို့သော်ပစ်မှတ်မရှိပါက မူမှား သည် ထို့ကြောင့်, အသုံးမပြုမီလမ်းကြောင်းတည်ရှိကြောင်းသေချာပါစေ။
<span><span><span class="hljs-variable">$real</span></span><span> = </span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-string">'/path/to/maybe-symlink'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$real</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 class="hljs-subst">$real</span></span></span><span>";
}
</span></span>
သင်္ကေတအချိတ်အဆက်အချို့သည်အချို့သော shared hosts သို့မဟုတ်အထူး operating systems များတွင်ကွဲပြားခြားနားစွာပြုမူနိုင်သည်။ File_exists () ကို အသုံးပြုသောအခါ, သင်ပစ်မှတ်လည်ပတ်မှုစနစ်၏အပြုအမူကိုရှင်းလင်းပြီးပတ်ဝန်းကျင်ရှာဖွေတွေ့ရှိခြင်းသို့မဟုတ်ခြွင်းချက်ကိုင်တွယ်ခြင်းကိုပြုလုပ်ရမည်။
File_exists () သည်အစွမ်းထက်သော်လည်းအလွယ်တကူအလွယ်တကူအလွယ်တကူအလွယ်တကူအလွယ်တကူအလွယ်တကူဖောက်ထားသည့်လုပ်ဆောင်မှုဖြစ်သည်။ developer သည်၎င်း၏အပြုအမူနှင့် ပတ်သက်. ရှင်းလင်းစွာဖြစ်သင့်သည်။ ၎င်းသည်ပစ်မှတ်တည်ရှိမှုရှိမရှိတရားသူကြီးများ, is_link () , Readlink () နှင့် realpath () ကဲ့သို့သောလုပ်ဆောင်ချက်များကိုအသုံးပြုရန်အတွက်သင်သည်ဖိုင်စစ်ဆေးခြင်းယုတ္တိဗေဒကိုပိုမိုတိကျစွာထိန်းချုပ်နိုင်ပြီးဤဘုံထောင်ချောက်များထဲသို့ကျခြင်းကိုရှောင်ရှားနိုင်သည်။