Проверка пустоты каталога в 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