Как получить все каталоги, включая подкаталоги, отдельно и сохранить в базе данных на PHP? Я использую MySQL, PHP 5.4 и nginx.
Прямо сейчас у меня есть следующая функция, которая использует readdir и делает то, что я хочу, просто отлично.
protected function getSubDirsRecursively($dir)
{
$result = array();
$dir = rtrim($dir, '\\/');
if (is_dir($dir)) {
$dh = opendir($dir);
while (($file = readdir($dh)) !== false) {
$currentPath = $dir . DIRECTORY_SEPARATOR . $file;
if ($file !== '.' && $file !== '..' && is_dir($currentPath)) {
$result[] = $currentPath;
$result = array_merge($result, $this->getSubDirsRecursively($currentPath));
}
}
closedir($dh);
}
return $result;
}
Однако проблема заключается в том, что у пользователя огромное количество каталогов (например, 1 м) и ограничение времени выполнения PHP, которое он не может изменить из-за общего хостинга.
Можно ли сделать это с помощью запросов ajax и собирать каталоги порциями?
Задача ещё не решена.
Других решений пока нет …