TLDR, я пишу некоторый код в PHP, чтобы подсчитать общее количество моих файлов и папок в каталоге, где находится мой проект.
У меня около 15.000 файлов и 1000 папок, но эти запросы заняли у меня около 6 секунд и 1 секунду для страниц, так что в общей сложности мне пришлось ждать 6-8 секунд, пока страница загрузилась и закончила sh.
Есть ли способ ускорить это? ? Я пытался использовать array_column в соответствии с этой темой: PHP Foreach l oop слишком медленно при применении к большим массивам
Но все равно показывал то же самое, все равно потребовалось 6 секунд.
Вот часть моего кода.
$files= 0;
$dir = glob("../");
foreach ($dir as $obj) {
if (is_dir($obj)) {
$folders++;
$scan = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($obj, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
foreach ($scan as $file) {
if (is_file($file)) {
$files++;
$exp = explode(".", $file);
$exp2 = isset($exp[3]) ? $exp[3] : null;
if ($exp2 == "txt") {
$files+;
}
} else {
$folders++;
}
}
} else {
$files++;
}
}
unset($exp2);
Где моя переменная $ exp состоит из 4 индексов.
array (
0 => '',
1 => '',
2 => '\\dashboard\\image37',
3 => 'txt', )