Mengesahkan Kekosongan Direktori dalam PHP
Menentukan sama ada direktori kosong boleh menjadi tugas penting dalam pelbagai senario pembangunan web. Walau bagaimanapun, skrip tertentu mungkin menghadapi masalah apabila output tersalah mencadangkan direktori kosong atau tidak kosong walaupun terdapat atau ketiadaan fail dalam.
Skrip Asal
Skrip yang disediakan skrip cuba menyemak kekosongan direktori menggunakan kod berikut:
<code class="php">$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';</code>
Walau bagaimanapun, fungsi glob() mungkin gagal mengesan fail tersembunyi Unix, yang membawa kepada keputusan yang tidak tepat.
Penyelesaian yang Diperbaiki
Untuk menyelesaikan isu ini, kami mengesyorkan menggunakan fungsi scandir() dan bukannya glob(), kerana ia boleh mengesan kedua-dua fail biasa dan tersembunyi. Selain itu, untuk meningkatkan kecekapan, kita boleh menggunakan fungsi tersuai untuk menyemak kekosongan dengan lebih cepat:
<code class="php">function is_dir_empty($dir) { return (count(scandir($dir)) == 2); }</code>
Fungsi ini menyemak sama ada direktori mengandungi hanya dua entri: direktori semasa (".") dan induk direktori (".."), menunjukkan direktori kosong.
Amalan Terbaik
Sebagai amalan terbaik, adalah dinasihatkan untuk menggunakan nilai boolean secara langsung dalam struktur kawalan sebaliknya daripada bergantung pada rentetan teks seperti "Kosong" atau "Tidak kosong." Ungkapan Boolean menyediakan cara yang lebih ringkas dan tepat untuk menentukan keadaan kosong atau tidak kosong.
Sebagai contoh, bukannya menggunakan:
<code class="php">if ($q == "Empty") { // ... }</code>
Anda boleh terus menggunakan:
<code class="php">if (is_dir_empty($dir)) { // ... }</code>
Atas ialah kandungan terperinci ## Bagaimana untuk Boleh Tentukan Sama ada Direktori Kosong dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!