လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> CHDIR (), opendir () နှင့် Readdir () ကိုပေါင်းစပ်ခြင်းဖြင့်လမ်းညွှန်လမ်းကြောင်းဖြတ်သန်းခြင်း၏လက်တွေ့ကျသောဥပမာများ

CHDIR (), opendir () နှင့် Readdir () ကိုပေါင်းစပ်ခြင်းဖြင့်လမ်းညွှန်လမ်းကြောင်းဖြတ်သန်းခြင်း၏လက်တွေ့ကျသောဥပမာများ

gitbox 2025-09-09
<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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"PHP လမ်းညွှန် traversal ဥပမာစတင်သည်&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/**
 * ပေါင်းစပ်ထားသော chdir()、opendir() နှင့် readdir() Directory Traversal အကောင်အထည်ဖော်ရေးလက်တွေ့ကျတဲ့ဥပမာများ
 *
 * တည်နေ PHP အလယ်ပိုင်း,操作စာချုပ်စာတမ်းနှင့်မာတိကာ是常见需求,အထူးသဖြင့်သင်လမ်းညွှန်ကိုဖြတ်ဖို့လိုအပ်တဲ့အခါ。
 * chdir() သင်လက်ရှိအလုပ်လုပ် directory ကိုပြောင်းလဲနိုင်သည်,opendir() တစ် ဦး directory လက်ကိုင်ဖွင့်လှစ်ရန်အသုံးပြုခဲ့သည်,
 * readdir() 用于逐个读取မာတိကာအလယ်ပိုင်း的စာချုပ်စာတမ်း或子မာတိကာ。
 *
 * ဤဆောင်းပါးသည်ဥပမာတစ်ခုဖြစ်လိမ့်မည်,演示如何ပေါင်းစပ်ထားသော这三个函数实现မာတိကာ的遍历。
 */</span>

</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">traverseDir</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$path</span></span></span><span>) {
    </span><span><span class="hljs-comment">// ပထမ ဦး ဆုံးအလုပ်လုပ် directory ကိုပြောင်းလဲကြိုးစားပါ</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">chdir</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>&lt;br&gt;";
        </span><span><span class="hljs-keyword">return</span></span><span>;
    }
    
    </span><span><span class="hljs-comment">// လက်ရှိလမ်းညွှန်ကိုဖွင့်ပါ</span></span><span>
    </span><span><span class="hljs-variable">$handle</span></span><span> = </span><span><span class="hljs-title function_ invoke__">opendir</span></span><span>(</span><span><span class="hljs-string">'.'</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$handle</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">"Directory လက်ကိုင်ကိုဖွင့ ်. မရပါ&lt;br&gt;"</span></span><span>;
        </span><span><span class="hljs-keyword">return</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-title function_ invoke__">getcwd</span></span><span>() . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"directory ၏ contents များသည်အောက်ပါအတိုင်းဖြစ်သည်:&lt;br&gt;"</span></span><span>;
    
    </span><span><span class="hljs-comment">// 遍历မာတိကာအလယ်ပိုင်း的စာချုပ်စာတမ်းနှင့်စာချုပ်စာတမ်း夹</span></span><span>
    </span><span><span class="hljs-keyword">while</span></span><span> ((</span><span><span class="hljs-variable">$entry</span></span><span> = </span><span><span class="hljs-title function_ invoke__">readdir</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>)) !== </span><span><span class="hljs-literal">false</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">$entry</span></span><span> === </span><span><span class="hljs-string">'.'</span></span><span> || </span><span><span class="hljs-variable">$entry</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-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">is_dir</span></span><span>(</span><span><span class="hljs-variable">$entry</span></span><span>)) {
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"[မာတိကာ] <span class="hljs-subst">$entry</span></span></span><span>&lt;br&gt;";
        } </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">$entry</span></span></span><span>&lt;br&gt;";
        }
    }
    
    </span><span><span class="hljs-title function_ invoke__">closedir</span></span><span>(</span><span><span class="hljs-variable">$handle</span></span><span>);
}

</span><span><span class="hljs-comment">// နမူနာခေါ်ဆိုမှု:ရှိတယ်ဆိုပါစို့ test_dir မာတိကာ</span></span><span>
</span><span><span class="hljs-variable">$testPath</span></span><span> = </span><span><span class="hljs-string">'test_dir'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">traverseDir</span></span><span>(</span><span><span class="hljs-variable">$testPath</span></span><span>);
</span></span>