PHP တွင်, စန္ဒာ function သည် directory ရှိဖိုင်များနှင့်ဖိုင်တွဲများအားလုံးကိုစာရင်းပြုစုသောအလွန်အသုံးများသောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့်၎င်းသည်လျှို့ဝှက်ဖိုင်များ (အစက်များဖြင့်စတင်သောဖိုင်များသို့မဟုတ်ဖိုလ်ဒါများ ) ကိုစာရင်းမသွင်းပါ။ ၎င်းသည်အချို့သောကိစ္စရပ်များတွင်ကျွန်ုပ်တို့အတွက်အဆင်မပြေမှုများဖြစ်ပေါ်စေနိုင်သည်။ ဤဆောင်းပါးသည်လျှို့ဝှက်ဖိုင်များကိုစာရင်းပြုစုရန် စနဒူရီ လုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ရန်တစ်ဆင့်ချင်းအလိုက်သင့်ကိုခြေလှမ်းတစ်လျှောက်လှမ်းကြည့်မည်။
စန္ဒာ function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<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-variable">$sorting_order</span></span><span>);
</span></span>$ directory : ဖိုင်ကိုစာရင်းပြုစုရန်လိုအပ်သည့်လမ်းညွှန်လမ်းကြောင်းကိုသတ်မှတ်သည်။
$ sorting_order : optional ကို, optional ကို, sorting နည်းလမ်းကိုသတ်မှတ်ပါ, default သည်အစဉ်အလာဖြစ်သည်။
ဤလုပ်ဆောင်ချက်သည် directory ရှိဖိုင်များနှင့်ဖိုင်တွဲများ၏အမည်များပါ 0 င်သောခင်းကျင်းမှုတစ်ခုရရှိစေသည်။ 0 င်ရောက်ခွင့်ပြုချက်မရှိပါက မှားယွင်းစွာ ပြန်ပို့ပါ။
အောက်ပါကုဒ်ကို run မယ်ဆိုရင်
<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-string">'/path/to/directory'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$files</span></span><span>);
</span></span>ရလဒ်သည်အောက်ပါတို့နှင့်ဆင်တူသည် -
<span><span>Array
(
[</span><span><span class="hljs-meta">0</span></span><span>] => .
[</span><span><span class="hljs-meta">1</span></span><span>] => ..
[</span><span><span class="hljs-meta">2</span></span><span>] => file1.txt
[</span><span><span class="hljs-meta">3</span></span><span>] => folder1
[</span><span><span class="hljs-meta">4</span></span><span>] => file2.txt
)
</span></span>သင်မြင်နိုင်သည့်အတိုင်း directory တွင်ရှိသောလျှို့ဝှက်ဖိုင်များ ( ဥပမာ ။ နှင့်မိဘလမ်းညွှန် .. စာရင်းဝင်နေကြသည်။
စကင်တူး စာရင်းလျှို့ဝှက်ဖိုင်များကိုပြုလုပ်ရန်ကျွန်ုပ်တို့သည်၎င်းကိုနည်းလမ်းနှစ်မျိုးဖြင့်ပြုလုပ်နိုင်သည်။ တစ်ခုမှာစိတ်ကြိုက်စီစစ်ခြင်းနည်းလမ်းကိုအသုံးပြုရန်ဖြစ်သည်။ အခြားတစ် ဦး သည် စနဒူရီမှ ပြန်လည်ပေါင်းစပ်ခြင်းဖြင့် filter ဖြစ်သည်။
ကျွန်ုပ်တို့သည် filter တစ်ခုကိုစိတ်ကြိုက်ပြုလုပ်နိုင်ပြီးစ ကင်တူးခြင်း ဖြင့်ပြန်လာသောဖိုင်အမည်များကိုကိုယ်တိုင်စစ်ဆေးနိုင်သည် ။ ပြီးတော့သူတို့ကိုလိုအပ်ရာတွေအပေါ်အခြေခံပြီးစောင့်ရှောက်ဖို့ဆိုတာဆုံးဖြတ်ပါ။
<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-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">// အသုံးပြု array_filter လျှို့ဝှက်ဖိုင်များကို filter လုပ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$allFiles</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$files</span></span><span>, function(</span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>[</span><span><span class="hljs-number">0</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-variable">$file</span></span><span> !== </span><span><span class="hljs-string">'..'</span></span><span>;
});
</span><span><span class="hljs-comment">// ဖိုင်များနှင့်ဖိုင်တွဲများအားလုံးကို output(လျှို့ဝှက်ဖိုင်များပါဝင်သည်)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$allFiles</span></span><span>);
</span></span>ဤဥပမာတွင်ကျွန်ုပ်တို့သည် (I.E. , လျှို့ဝှက်ဖိုင်များ) ဖြင့်စတင်သောဖိုင်များကို filter လုပ်ရန် array_filter ကို အသုံးပြုခဲ့သည် ။ နှင့် .. လမ်းညွှန်များမပါဝင်ပါ။
နောက်ထပ်ဘုံအလေ့အကျင့်တစ်ခုမှာနည်းလမ်းနှင့် တွဲဖက်. conjunction ရှိ Glob function တစ်ခုကိုအသုံးပြုရန်ဖြစ်သည်။
<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-variable">$allFiles</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_merge</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-title function_ invoke__">glob</span></span><span>(</span><span><span class="hljs-variable">$directory</span></span><span> . </span><span><span class="hljs-string">'/.*'</span></span><span>));
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$allFiles</span></span><span>);
</span></span>ဤနည်းအားဖြင့် The Glow သည် ပုံစံ နှင့်ကိုက်ညီသောလျှို့ဝှက်ဖိုင်များအားလုံးကိုစာရင်းပြုစုထားသည် ။
အကယ်. သင်သည်အချို့သောဖိုင်များကိုဖယ်ထုတ်ခြင်းသို့မဟုတ်ဖိုင်များကိုခွဲထုတ်ခြင်းကဲ့သို့သောစာရင်းလျှို့ဝှက်ဖိုင်များတွင်ပိုမိုလုပ်ဆောင်လိုပါက စနဒူရီ မှပြန်လာသောခင်းကျင်းမှုကိုသင်လုပ်ဆောင်နိုင်သည်။
ဥပမာအားဖြင့် ,
<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-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-variable">$filteredFiles</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_filter</span></span><span>(</span><span><span class="hljs-variable">$files</span></span><span>, function(</span><span><span class="hljs-variable">$file</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>[</span><span><span class="hljs-number">0</span></span><span>] !== </span><span><span class="hljs-string">'.'</span></span><span> || </span><span><span class="hljs-title function_ invoke__">strpos</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">'.git'</span></span><span>) !== </span><span><span class="hljs-number">0</span></span><span>;
});
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$filteredFiles</span></span><span>);
</span></span>အထက်ပါနည်းလမ်းနှစ်ခုမှတဆင့်လျှို့ဝှက်ဖိုင်များကိုစာရင်းပြုစုရန် စနန္ဒာ function ကိုသုံးနိုင်သည်။ Custom filtering နည်းလမ်းများအသုံးပြုခြင်းသို့မဟုတ် chology functions များကိုပေါင်းစပ်ခြင်းရှိမရှိ, ၎င်းသည် PHP ရှိလျှို့ဝှက်ဖိုင်များအပါအ 0 င် directory ရှိဖိုင်များနှင့်ဖိုင်တွဲများကိုအောင်မြင်စွာရယူနိုင်ပါသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်လျှို့ဝှက်ဖိုင်များကိုကိုင်တွယ်ရန်သင့်တော်သောနည်းလမ်းကိုရွေးချယ်ခြင်းသည်သင့်အားဖိုင်များဖတ်ရှုခြင်းနှင့်လည်ပတ်မှုအပေါ်ပိုမိုကောင်းမွန်စွာထိန်းချုပ်နိုင်သည်။