Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Cekap Menentukan sama ada Direktori Kosong dalam PHP?
Menyemak Kekosongan Direktori dalam PHP
Untuk mengesahkan sama ada direktori kosong atau tidak, menggunakan fungsi PHP boleh menjadi berkesan. Walau bagaimanapun, adalah penting untuk memilih fungsi yang sesuai berdasarkan keperluan khusus.
Pendekatan dan Isu Asal
Skrip yang disediakan menggunakan fungsi glob untuk mengimbas direktori. Apabila tiada fail hadir, ia sepatutnya menunjukkan "kosong." Walau bagaimanapun, skrip secara salah mendakwa bahawa direktori itu kosong walaupun terdapat fail dan sebaliknya.
Pelaksanaan Yang Diperbaiki
Untuk menangani isu ini, pertimbangkan untuk menggunakan fungsi scandir bukannya glob, kerana glob mungkin terlepas pandang fail tersembunyi. Kod yang dipertingkatkan di bawah menggabungkan perubahan ini:
<code class="php"><?php $pid = basename($_GET["prodref"]); // Sanitize input $dir = "/assets/$pid/v"; if (is_dir_empty($dir)) { echo "the folder is empty"; }else{ echo "the folder is NOT empty"; } function is_dir_empty($dir) { return (count(scandir($dir)) == 2); // Check for only"." and ".." } ?></code>
Penyelesaian Optimum
Untuk kecekapan yang lebih tinggi, penyelesaian yang lebih optimum wujud:
<code class="php">function dir_is_empty($dir) { $handle = opendir($dir); while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { closedir($handle); return false; } } closedir($handle); return true; } ?></code>
Fungsi ini menyemak pemegang direktori dan secara langsung mengembalikan benar atau salah dan bukannya mengira fail.
Pengesyoran Konvensyen Penamaan
Selain itu, secara amnya disyorkan untuk menggunakan nilai boolean (true atau palsu) dan bukannya nilai rentetan ("Kosong" atau "Tidak kosong") dalam struktur kawalan untuk mengelakkan kekeliruan.
Atas ialah kandungan terperinci Bagaimana untuk Cekap Menentukan sama ada Direktori Kosong dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!