Считывание файлов в папках + размер + сортировка

Mondain

Новичок
Считывание файлов в папках + размер + сортировка

Доброго времени суток!

У меня есть папка photos. В ней есть так же папки и файлы. Можно ли вывести все эти папки с информацией о них?
То-есть полный размер папки и количество файлов. Так же отсортировать по возрастанию.

PHP:
function display_category ($path) {
	if ($open = opendir ($path)) {
		while (false !== ($file = readdir ($open))) {
			if ($file != "." && $file != "..") {
				if (is_dir ($path . '/' . $file)) {
					echo "<li><a href='$file'>$file</a></li>";
					display_category ($path . '/' . $file);
				}
			}
		}

		closedir ($open);
	}
}
Данный код показывает все папки. Но не считывает размер каждой папки и количество. Да и сортирует не правильно.
Можно ли такое сделать?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Пишешь в массив, потом сортируешь.

-~{}~ 29.12.09 18:17:

VadymUA
Ты чё с первого дня такой дерзкий?
 

Mondain

Новичок
Mr_Max
Вот что у меня получилось.

PHP:
function display_category ($path) {
	$data = array ();
	$qty = 0;
	$size = 0;

	if ($open = opendir ($path)) {
		while (false !== ($file = readdir ($open))) {
			if ($file != "." && $file != "..") {
				if (!is_dir ($path . '/' . $file)) {
					$size += filesize ($path . '/' . $file);
				} else {
					$data[$file] = array ('qty' => $qty, 'size' => $size);
					display_category ($path . '/' . $file);
				}
			}
		}

		closedir ($open);
		arsort ($data);
		return $data;
	}
}
Не получается у меня посчитать файлы в папках и их размер :(
Не могу понять как это сделать. Не сохраняются они в массиве.
 

dimagolov

Новичок
Не сохраняются они в массиве.
у тебя как-бы рекурсивная ф-я. это раз. кроме того, какой смысл в переменной $qty? тебе по логике нужно возвращать массив ($qty, $size) и обрабатывать его по возврату.
 

Mondain

Новичок
Вот как это сделать я и не понимаю :(

И как правильно будет отсортировать вот такие данные по возрастанию ключя?

PHP:
[29.12.2009] => 0
[29.12.2008] => 0
[23.09.2009] => 0
[22.12.2009] => 0
[22.11.2009] => 0
[19.10.2009] => 0
[01.12.2009] => 0
uksort ?
 

dimagolov

Новичок
Mondain, ты нужную сортировку с такими ключами не получишь. потому что даты для сортировки нужно записывать в виде YYYYMMDD
 

Mondain

Новичок
Автор оригинала: dimagolov
у тебя как-бы рекурсивная ф-я. это раз. кроме того, какой смысл в переменной $qty? тебе по логике нужно возвращать массив ($qty, $size) и обрабатывать его по возврату.
$qty - считывает количество файлов в папке
$size - считывает общий размер папки

Да, с рекурсией у меня ступор. Но я не пойму как возвратить массив и обработать его....
Не знаю куда впихнуть массив и откуда его забрать что бы он сохранился...
 

AmdY

Пью пиво
Команда форума
массив сортировать - usort
рекурсию, покажи как пробуешь делать.
 
Сверху