«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно определить, пуст ли каталог в PHP?

Как эффективно определить, пуст ли каталог в PHP?

Опубликовано 12 ноября 2024 г.
Просматривать:699

How to Efficiently Determine if a Directory is Empty in PHP?

Проверка пустоты каталога в PHP

Чтобы проверить, пуст ли каталог или нет, можно эффективно использовать функции PHP. Однако очень важно выбрать подходящую функцию, исходя из конкретных требований.

Оригинальный подход и проблема

Предоставленный сценарий использует функцию glob для сканирования каталога. Если файлов нет, должно быть указано «пусто». Однако сценарий ошибочно утверждает, что каталог пуст, несмотря на наличие файлов, и наоборот.

Улучшенная реализация

Чтобы решить эту проблему, рассмотрите возможность использования функции scandir. вместо glob, так как glob может игнорировать скрытые файлы. Улучшенный код ниже включает это изменение:

Оптимальное решение

Для большей эффективности существует более оптимизированное решение:

function dir_is_empty($dir) {
  $handle = opendir($dir);
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      closedir($handle);
      return false;
    }
  }
  closedir($handle);
  return true;
}
?>

Эта функция проверяет дескриптор каталога и напрямую возвращает true или false вместо подсчета файлов.

Рекомендации по соглашению об именах

Более того, это обычно рекомендуется использовать логические значения (истина или ложь) вместо строковых значений («Пусто» или «Не пусто») в структурах управления, чтобы избежать путаницы.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3