В переполнении стека есть несколько ответов на вопрос, как проверить, пуст ли каталог, но какой из них самый быстрый, какой способ наиболее эффективен?
Ответ 1: https://stackoverflow.com/a/7497848/4437206
function dir_is_empty($dir) {
$handle = opendir($handle);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle); // <= I added this
return FALSE;
}
}
closedir($handle); // <= I added this
return TRUE;
}
Ответ 2: https://stackoverflow.com/a/18856880/4437206
$isDirEmpty = !(new \FilesystemIterator($dir))->valid();
Ответ 3: https://stackoverflow.com/a/19243116/4437206
$dir = 'directory'; // dir path assign here
echo (count(glob("$dir/*")) === 0) ? 'Empty' : 'Not empty';
Или, есть совершенно другой способ, который быстрее и эффективнее, чем эти три выше?
Что касаетсяОтвет 1, обратите внимание, что я добавил closedir($handle);
, но я не уверен, что это необходимо (?).
РЕДАКТИРОВАТЬ: Первоначально я добавил closedir($dir);
вместо closedir($handle);
, но я исправил это как @ duskwuff , указанный в его ответе .