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

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

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

## How to Reliably Determine if a Directory is Empty in PHP?

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

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

Исходный сценарий

Предоставленный сценарий скрипт пытается проверить пустоту каталога, используя следующий код:

$q = (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';

Однако функция glob() может не обнаружить скрытые файлы Unix, что приводит к неточным результатам.

Улучшенное решение

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

function is_dir_empty($dir) {
  return (count(scandir($dir)) == 2);
}

Эта функция проверяет, содержит ли каталог только две записи: текущий каталог («.») и родительский каталог («..»), что указывает на пустой каталог.

Лучшая практика

Рекомендуется использовать логические значения непосредственно в структурах управления, а не полагаться на текстовые строки, такие как «Пусто» или «Не пусто». Логические выражения обеспечивают более краткий и точный способ определения пустых или непустых условий.

Например, вместо использования:

if ($q == "Empty") {
  // ...
}

Вы можете напрямую использовать:

if (is_dir_empty($dir)) {
  // ...
}
Последний учебник Более>

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

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

Copyright© 2022 湘ICP备2022001581号-3