လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> directory တစ်ခုနှင့်သူတို့၏သက်ဆိုင်ရာဖိုင်များကို directory မှတဆင့်နှင့်၎င်းတို့၏သက်ဆိုင်ရာဖိုင်များကိုစာရင်းပြုစုရမည်နည်း။

directory တစ်ခုနှင့်သူတို့၏သက်ဆိုင်ရာဖိုင်များကို directory မှတဆင့်နှင့်၎င်းတို့၏သက်ဆိုင်ရာဖိုင်များကိုစာရင်းပြုစုရမည်နည်း။

gitbox 2025-09-09

PHP တွင် စနပိုင်း လုပ်ဆောင်ချက်သည်ဖိုင်များနှင့် subdirectorirectorirectorirectries များကိုသတ်မှတ်ထားသောလမ်းညွှန်တွင်ဖော်ပြနိုင်သည်။ သို့သော် စနဗူသည် ရိုးရှင်းသောဖိုင်များနှင့်လမ်းညွှန်များစာရင်းကိုသာပြန်ပို့သည်။ directory in directory နှင့် target files များရှိသင်္ကေတ link များကိုစာရင်းပြုစုရန်ကျွန်ုပ်တို့သည် scandir နှင့် is_link နှင့် is_link နှင့် readlink နှင့် readlink နှင့် readlink functions များကိုအသုံးပြုရန်လိုအပ်သည်။

1 ။ စနဗူ ၏အခြေခံအသုံးပြုမှု

အဆိုပါ စတူးဖေါ်ရေး လုပ်ဆောင်ချက်သည်သတ်မှတ်ထားသော directory တွင်ဖိုင်များနှင့် subdirectorirectry အားလုံးကိုပြန်လည်ပေးအပ်ရန်နှင့်ပုံမှန်အားဖြင့်အက္ခရာစဉ်အတိုင်းစီစဉ်ထားသည်။ အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">scandir</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);
</span></span>

$ directory parameter သည် scan ဖတ်ရန်ပစ်မှတ်လမ်းညွှန်ဖြစ်သည်။ ပြန်လာသောတန်ဖိုးသည်ထိုလမ်းညွှန်တွင်ဖိုင်များနှင့် subdirectoriontros များပါ 0 င်သည်။ သတိပြုသင့်သည်မှာ စကျော်ကာ များမှပြန်လာသောစာရင်းသည်အထူးပါဝင်ကြောင်းသတိပြုသင့်သည် နှင့် .. လက်ရှိလမ်းညွှန်နှင့်မိဘလမ်းညွှန်များကိုကိုယ်စားပြုခြင်း,

2 ။ သင်္ကေတ links ထွက် filter

ဖိုင် (သို့) လမ်းညွှန်တစ်ခုသည်သင်္ကေတ link တစ်ခုဖြစ်ခြင်းရှိမရှိဆုံးဖြတ်ရန် PHP ၏ is_link function ကိုသုံးနိုင်သည်။ ပေးထားသောလမ်းကြောင်းသည်သင်္ကေတ link ဖြစ်ကြောင်းစစ်ဆေးသည်။

 <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">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$path</span></span></span><span> ၎င်းသည်သင်္ကေတ link တစ်ခုဖြစ်သည်\n";
}
</span></span>

3 ။ အဆိုပါသင်္ကေတ link အားဖြင့်ညွှန်ပြ Targe ကိုရယူပါ

သင်္ကေတ link points ကိုရရန် Readlink function ကိုသုံးပါ။ ပေးထားသောလမ်းကြောင်းသည်သင်္ကေတ link ဖြစ်လျှင် Readlink သည် သင်္ကေတ link ၏ပစ်မှတ်လမ်းကြောင်းကိုပြန်ပို့လိမ့်မည်။ ဒီလိုမှမဟုတ်ရင် မှားယွင်းတဲ့ ပြန်လာလိမ့်မယ်။

 <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">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$path</span></span></span><span> ဘက်ရိခြင်း </span><span><span class="hljs-subst">$target</span></span><span>\n";
}
</span></span>

4 ။ Code Pegalment: directory in နှင့် 4 င်း၏သက်ဆိုင်ရာဖိုင်များတွင်သင်္ကေတ link များကိုစာရင်းပြုစုပါ

ယခုကျွန်ုပ်တို့သည်အထက်ပါကုဒ်များကိုသင်္ကေတ link များနှင့်သတ်မှတ်ထားသော directory တွင်၎င်းတို့၏ပစ်မှတ်ဖိုင်များကိုစာရင်းပြုစုရန်အထက်ပါကုဒ်များကိုပေါင်းစပ်နိုင်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// စကင်ဖတ်ရန်လမ်းညွှန်ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$directory</span></span><span> = </span><span><span class="hljs-string">'/path/to/directory'</span></span><span>;

</span><span><span class="hljs-comment">// အသုံးပြု scandir လမ်းညွှန်စာရင်းရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$files</span></span><span> = </span><span><span class="hljs-title function_ invoke__">scandir</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span>);

</span><span><span class="hljs-comment">// traversory လမ်းညွှန်စာရင်း</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$files</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>) {
    </span><span><span class="hljs-comment">// ထုတ်ပယ် . နှင့် .. အချက်</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$file</span></span><span> === </span><span><span class="hljs-string">'.'</span></span><span> || </span><span><span class="hljs-variable">$file</span></span><span> === </span><span><span class="hljs-string">'..'</span></span><span>) {
        </span><span><span class="hljs-keyword">continue</span></span><span>;
    }
    
    </span><span><span class="hljs-comment">// ပြည့်စုံဖိုင်လမ်းကြောင်း splicing</span></span><span>
    </span><span><span class="hljs-variable">$filePath</span></span><span> = </span><span><span class="hljs-variable">$directory</span></span><span> . DIRECTORY_SEPARATOR . </span><span><span class="hljs-variable">$file</span></span><span>;
    
    </span><span><span class="hljs-comment">// ဖိုင်သည်သင်္ကေတ link ရှိမရှိစစ်ဆေးပါ</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">$filePath</span></span><span>)) {
        </span><span><span class="hljs-comment">// 获取符号链接ဘက်ရိခြင်း的目标文件</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">$filePath</span></span><span>);
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<span class="hljs-subst">$file</span></span></span><span> ၎င်းသည်သင်္ကေတ link တစ်ခုဖြစ်သည်,ဘက်ရိခြင်း </span><span><span class="hljs-subst">$target</span></span><span>\n";
    }
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

5 ။ code ခွဲခြမ်းစိတ်ဖြာ

  • scandir ($ directory) - ဖိုင်များနှင့် subdirectorirector ်ဌာန်းချက်များအားလုံးကို directory ထဲတွင်ရရှိသည်။

  • is_link ($ filpath) - လက်ရှိဖိုင်သည်သင်္ကေတ link ကိုဆုံးဖြတ်သည်။

  • Readlink ($ filepath) : သင်္ကေတ link points-file လမ်းကြောင်းကိုရရှိသည်။

6 ။ နမူနာ output ကို

Directory / Path / Directory သည်အောက်ပါအကြောင်းအရာများရှိသည်ဟုယူဆပါ -

  • file1.txt (ပုံမှန်ဖိုင်)

  • Symlink1 (Tymlink မှ /path/tort_to/target1.txt )

  • Symlink2 (Tymlink မှ /path/tort_to/target2.txt )

အထက်ပါကုဒ်ကိုကွပ်မျက်ပြီးနောက် output ကိုဖြစ်လိမ့်မည်။

 <span><span>symlink1 ၎င်းသည်သင်္ကေတ link တစ်ခုဖြစ်သည်,ဘက်ရိခြင်း /</span><span><span class="hljs-type">path</span></span><span>/</span><span><span class="hljs-keyword">to</span></span><span>/target1.txt
symlink2 ၎င်းသည်သင်္ကေတ link တစ်ခုဖြစ်သည်,ဘက်ရိခြင်း /</span><span><span class="hljs-type">path</span></span><span>/</span><span><span class="hljs-keyword">to</span></span><span>/target2.txt
</span></span>

7 ။ အကျဉ်းချုပ်

scandir နှင့် is_link နှင့် readlink function များကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်သတ်မှတ်ထားသော directory နှင့်၎င်းတို့၏သက်ဆိုင်ရာပစ်မှတ်ဖိုင်များတွင်သင်္ကေတ link များကိုအလွယ်တကူစာရင်းပြုစုနိုင်သည်။ ဤချဉ်းကပ်မှုသည်အထူးသဖြင့်ရှုပ်ထွေးသော directory studlege များနှင့်ဆက်ဆံရာတွင် System တွင်ပုံဆောင်ဆက်သွယ်မှုများကိုပိုမိုကောင်းမွန်စွာစီမံခန့်ခွဲရန်နှင့်ဆန်းစစ်ရန်ကူညီနိုင်သည်။