Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan Dengan Tepat sama ada Direktori Kosong dalam PHP, Termasuk Fail Tersembunyi?

Bagaimana untuk Menentukan Dengan Tepat sama ada Direktori Kosong dalam PHP, Termasuk Fail Tersembunyi?

DDD
DDDasal
2024-10-24 18:39:02571semak imbas

How to Accurately Determine if a Directory is Empty in PHP, Including Hidden Files?

Tentukan Kekosongan Direktori dalam PHP

Anda ingin menyemak sama ada direktori kosong menggunakan PHP tetapi skrip semasa anda memberikan hasil yang tidak konsisten. Mari kita periksa masalah dan teroka penyelesaian yang boleh dipercayai.

Kod anda menggunakan glob untuk mendapatkan semula fail dalam direktori. Walau bagaimanapun, glob mempunyai had: ia tidak dapat mengesan fail tersembunyi bermula dengan titik (cth., ".gitignore"). Akibatnya, skrip anda mungkin melaporkan direktori sebagai kosong walaupun terdapat fail tersembunyi.

Untuk mengatasi had ini, anda boleh menggantikan glob dengan scandir. scandir membaca semua fail dalam direktori, termasuk fail tersembunyi. Anda boleh mengubah suai kod anda seperti berikut:

<code class="php">$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);
}</code>

Fungsi is_dir_empty mengira bilangan fail dalam direktori dan membandingkannya dengan 2 (mewakili "." dan ".."). Jika kiraan ialah 2, direktori itu kosong.

Sebagai alternatif, anda boleh menggunakan opendir dan readdir untuk menggelungkan direktori dan menyemak fail tidak tersembunyi:

<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>

Dengan menggunakan ini kaedah, anda boleh menentukan dengan tepat sama ada direktori kosong, walaupun ia mengandungi fail tersembunyi. Selain itu, pertimbangkan untuk menggunakan nilai boolean dan bukannya perkataan ("Kosong" atau "Tidak kosong") untuk kod yang lebih jelas dan ringkas.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Dengan Tepat sama ada Direktori Kosong dalam PHP, Termasuk Fail Tersembunyi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn