is_link function ၏ function သည် function သည်ပေးထားသောလမ်းကြောင်းသည်သင်္ကေတလမ်းကြောင်းဖြစ်ကြောင်းဆုံးဖြတ်ရန်ဖြစ်သည်။ Reweation True ဆိုသည်မှာလမ်းကြောင်းသည်သင်္ကေတလမ်းကြောင်းဖြစ်ကြောင်းဆိုလိုသည်မှာ မှားယွင်းစွာ ပြန်ခြင်းဆိုသည်မှာသင်္ကေတလမ်းကြောင်းသို့မဟုတ်လမ်းကြောင်းမရှိသေးကြောင်းဆိုလိုသည်။ ၎င်း၏အခြေခံအသုံးပြုမှုပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">is_link</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>အကယ်. ပေးထားသောလမ်းကြောင်းမှန် ဖိုင်အမည်ကို သင်္ကေတ link တစ်ခုသို့ညွှန်ပြပါက is_link သည် မှန်ကန်သည် ။ သတိပြုသင့်သည်မှာ is_link သည် ချိတ်ဆက်ထားသောပစ်မှတ်ထားဖိုင် (သို့) လမ်းညွှန်တည်ရှိခြင်းရှိမရှိမဆုံးဖြတ်သင့်ကြောင်းသတိပြုသင့်သည်။ ၎င်းသည်သင်္ကေတ link ဖြစ်သည်ကိုသာသိသည်။
လမ်းကြောင်းကိုညွှန်ပြသည့်လမ်းကြောင်းသည် is_link နှင့်သာမန်ဖိုင်များသည်အတူတူပင်ပြုမူကြပြီး၎င်းတို့သည်သင်္ကေတလမ်းကြောင်းများရှိမရှိမှန်ကန်စွာဆုံးဖြတ်နိုင်သည်။ ပြနာမှာလမ်းညွှန်များ၏သင်္ကေတအချိတ်အဆက်အချို့သည်အန္တရာယ်များကိုမိတ်ဆက်ပေးနိုင်သည်။
လမ်းညွှန်များနှင့်ဖိုင်များအကြားရှုပ်ထွေးမှုများ - အကယ်. သင်သည် directory link ကိုအကဲဖြတ်ရန်ကြိုးစားနေပါက link သည်သာမန်လမ်းညွှန်ထက်သင်္ကေတလမ်းကြောင်းဖြစ်ကြောင်းသေချာအောင်လုပ်ပါ။ is_link က ပစ်မှတ်သည် directory တစ်ခုသို့မဟုတ်ဖိုင်တစ်ခုဟုတ်မဟုတ်ကို ခွဲခြား. မရပါကလမ်းကြောင်းသည်သင်္ကေတ link ဖြစ်သည်ကိုသာပြောပြလိမ့်မည်။
Path Pertions - အချို့သောကိစ္စရပ်များတွင်သင်္ကေတ link မှညွှန်ပြသောပစ်မှတ်သည်ခွင့်ပြုချက်ပြ issues နာများကြောင့်လက်လှမ်းမမီနိုင်ပါ။ အကယ် . သင် IS_LINK ကို သာအသုံးပြုပါကပစ်မှတ်အတွက်လက်လှမ်းမမီနိုင်သောပြ problem နာကိုသင်ရှာမတွေ့ပါ ။
ဘုံပြ problem နာတစ်ခုမှာသင်္ကေတအချိတ်အဆက်များကကွင်းဆက်များကိုဖွဲ့စည်းနိုင်သည်။ ဥပမာအားဖြင့်, သင်္ကေတအချိတ်အဆက်ကတစ်ကိုယ်ရေတည်ဆောက်မှုတစ်ခုဖြစ်ပေါ်စေသည့်အခြားတစ်ခုသို့မဟုတ်အခြားသင်္ကေတလမ်းကြောင်းသို့ညွှန်ပြသည်။ ဤ is_link function ကိုယ်နှိုက်ကဒီဟာကိုမသိသေးတဲ့အတွက်, ဒါကြောင့်ပရိုဂည့်လုပ်သားတစ် ဦး သို့ကျဆင်းသွားခြင်းမှရှောင်ရှားရန်သင်္ကေတ links များကိုကိုင်တွယ်သောအခါအပိုဂရုစိုက်ရမည်။
<span><span><span class="hljs-comment">// ယူဆချက် 'link1' သင်္ကေတ link ကိုဖြစ်ပါတယ်,ဘက်ရိခြင်း 'link2'</span></span><span>
</span><span><span class="hljs-comment">// 'link2' 又သင်္ကေတ link ကိုဖြစ်ပါတယ်,ဘက်ရိခြင်း 'link1'</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-string">'link1'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"link1 ၎င်းသည်သင်္ကေတ link တစ်ခုဖြစ်သည်\n"</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-string">'link2'</span></span><span>)) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"link2 ၎င်းသည်သင်္ကေတ link တစ်ခုဖြစ်သည်\n"</span></span><span>;
}
</span></span>ဤအခြေအနေသည်ပရိုဂရမ်သည်အထူးသဖြင့်သင်္ကေတ link resolution ကိုဖျော်ဖြေတင်ဆက်သည့်အခါ,
သင်္ကေတ link loops ၏ပြ problem နာကိုရှောင်ရှားရန်သင် underticolic link ၏နောက်ဆုံးပစ်မှတ်လမ်းကြောင်းကိုရယူရန်သင် realappath ကို သုံးနိုင်သည်။ Realath သည် ပုံဆောင်လမ်းကြောင်းများအားလုံးကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်နောက်ဆုံးအကြွင်းမဲ့လမ်းကြောင်းကိုပြန်ပို့သည်။ သင်္ကေတအချိတ်အဆက်ကသူ့ဟာသူသည်မိမိကိုယ်ကိုရည်ညွှန်းပါကကွင်းဆက်တစ်ခုဖြစ်ပေါ်စေပါက realappath သည် မှားသည် ။
<span><span><span class="hljs-variable">$realpath</span></span><span> = </span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-string">'link1'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$realpath</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">"သင်္ကေတ link ကို loop သို့မဟုတ်လက်လှမ်းမမှီနိုင်သောပစ်မှတ်ထား\n"</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 class="hljs-subst">$realpath</span></span></span><span>\n";
}
</span></span>ဖိုင်စနစ်တွင်သင်္ကေတအချင်းချင်းချိတ်ဆက်မှုနှင့်လမ်းညွှန်လင့်ခ်များကိုကိုင်တွယ်ခြင်းသည်အနည်းငယ်ကွဲပြားသည်။ ဥပမာအားဖြင့်, Linux Systems တွင် is_link တွင် သင်္ကေတလိုင်းများကိုမှန်ကန်စွာခွဲခြားသတ်မှတ်နိုင်သည်, သို့သော်ပြတင်းပေါက်များကဲ့သို့သောအချို့သော operating system အချို့တွင်သင်္ကေတအချိတ်အဆက်များ၏အပြုအမူသည်ကွဲပြားနိုင်သည်။ သင်၏ပရိုဂရမ်ကိုမတူညီသောပလက်ဖောင်းများပေါ်တွင် run ရန်လိုအပ်ပါက Cross-platform compatibility ကိုသေချာစေရန် IS_LINK ကို အသုံးပြုသောအခါ operating system တွင်တရားစွဲဆိုရန်အကြံပြုသည်။
<span><span><span class="hljs-keyword">if</span></span><span> (PHP_OS === </span><span><span class="hljs-string">'WINNT'</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"တည်နေWindowsပလက်ဖောင်းပေါ်မှာ,သင်္ကေတအချိတ်အဆက်များ၏အပြုအမူနှင့်ဆက်စပ်သောဖြစ်နိုင်သည်Linuxကဲှကွာသော。\n"</span></span><span>;
}
</span></span>is_link နှင့် is_dir ကို မကြာခဏအတူတကွအသုံးပြုကြသည်, သို့သော်လုပ်ဆောင်ချက်နှစ်ခုအကြားအပြုအမူကွဲပြားခြားနားမှုများရှိသည်။ is_link သည် လမ်းကြောင်းသည်သင်္ကေတ link ဖြစ်ကြောင်းစစ်ဆေးသည် ။ သင်္ကေတအချိတ်အဆက်တစ်ခုလမ်းညွှန်ကိုညွှန်ပြခြင်းရှိမရှိသင်ဆုံးဖြတ်လိုလျှင်သင်သည် is_link နှင့် is_dir ကို သုံးနိုင်သည်။
<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-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-title function_ invoke__">realpath</span></span><span>(</span><span><span class="hljs-variable">$path</span></span><span>))) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"符号链接ဘက်ရိခြင်း一个目录\n"</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">"符号链接ဘက်ရိခြင်း非目录路径\n"</span></span><span>;
}
}
</span></span>is_link function သည်အလွန်ရိုးရှင်းပြီးထိရောက်သောပုံသင်္ကေတဆက်သွယ်မှုများကိုစီရင်သောအခါ, directory link များနှင့်ဆက်ဆံရာတွင်အာရုံစူးစိုက်မှုကိုဂရုပြုရန်အသေးစိတ်အချက်အလက်အချို့ရှိသေးသည်။ အထူးသဖြင့်မြို့တော် link များ, ပလက်ဖောင်းကွဲပြားခြားနားမှုများ, plature permissions စသည်တို့ကို link target permissions စသဖြင့်အသုံးပြုသောအချက်များ, Program ၏အားသာချက်များကိုသေချာစေရန်နှင့် is_link ကို အသုံးပြုခြင်းနှင့်သင်္ကေတအချိုရည်များကိုရှောင်ရှားရန် ( ispath , is_dir , iscreadable စသည်တို့) ဖြင့်အသုံးပြုရန်အကြံပြုသည်။