2013-02-22 4 views
1

У меня есть несколько миллионов файлов в папке, и в этой папке есть несколько подпапок, каждая подпапка состоит из тысяч файлов. Я могу перечислить все файлы данной папки с помощью функции glob, но здесь, в этом случае, как очень высокий, я получаю фатальную ошибку php. разрешенный размер памяти exhaused попытается выделить больше памяти, которую я знаю, что можно сделать, просто сохранив один файл php.ini в этой подпапке, но я точно хочу, перечисляет весь размер расширения .txt в порядке убывания, так что больший файл будет наверху и файл с меньшим размером будет внизу, но, как я уже сказал, невозможно перечислить миллионы файлов, так что, как и mysql, я могу перечислить их на странице, или что-то вроде топ-100 файлов будет отображаться в порядке убывания, когда я нажимаю на следующую на странице будут отображаться следующие 100-200 элементов, но я не хочу использовать базу данных, если нет другого способа, как я могу хранить все эти данные в базе данных, не вызывая большой нагрузки на сервер.листинг файлов вложенной папки

 <?php 
     foreach (glob("files/*") as $filename) { 
     echo "uploads/" . "$filename" . "\n</br>"; 
    } 
    ?> 

ответ

0

opendir insteed of glob();

попробовать что-то вроде этого:

function printdirs($path) { 
if ($handle = opendir($path)) { 
    while (false !== ($entry = readdir($handle))) { 
     if ($entry != "." && $entry != "..") { 
      if(is_dir($path.'/'.$entry)) 
       printdirs($path.'/'.$entry); 
      else 
      echo $path . "/" . $entry . "\n</br>"; 
     } 
    } 
    closedir($handle); 
}} 

printdirs('uploads'); 
+1

, пожалуйста, как я могу достигнуть моей цели – wayenjoy

+0

Пожалуйста, расширить ваш ответ некоторые из них. – MikeSmithDev

+0

@MikeSmithDev вы получаете то, что я хотел сделать – wayenjoy

Смежные вопросы