|
|
|
| Мне очень понравились решения, не думал, что с такой лёгкостью они будут выполнены. Читабельность оценивал по 5-балльной системе, тонкости сколько насчитаю (тут ничего интересного, все учли родительский .. и текущий . каталоги, необходимость использовать рекурсию), оригинальность 1 - если скрипт работает неправильно, остальным 5 за минусом недочётов (за несерьёзные недочёты назначал -1, за серьёзные -2 (таких не было)).
_N читаб тонкс оригн
001 4 3 4
002 3 4 5
003 2 2 1
004 5 4 5
005 5 3 4
006 3 3 4
007 5 3 4
|
Тонкости
001
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
3) Отсуствуют глобальные переменные и массивы
002
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
3) Скрипт не зависит от PHP 5
4) Отсуствуют глобальные переменные и массивы
003
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
004
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
3) Скрипт не зависит от PHP 5
4) Отсуствуют глобальные переменные и массивы
005
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
3) Скрипт не зависит от PHP 5
006
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
3) Скрипт не зависит от PHP 5
007
1) Используется рекурсивный спуск
2) Учитываются родительская .. и текущая . директории
3) Скрипт не зависит от PHP 5 | |
|
|
|
|
|
|
|
для: cheops
(22.02.2006 в 23:39)
| | Интересные решения. Тоже хотелось бы оценить (по-своему).
001 оценить не удалось - scandir() не работает и что скрипт выдает и как это выглядит непонятно. Увы.
002 красиво выводится, но неправильно (5-6 Кб округляются до 0), хотя скрипт понятный и достаточно компактный.
003 вначале было сообщение "Папки не существует!". Какже не существует, если в НЕЙ лежит этот самый скрипт. Потом понял, что не учитывается условие задачи "начиная с текущего". После правки понял, что scandir() и здесь не работает. Тоже 0 баллов.
004 великолепный скрипт. Читается легко и понятно. Внесено оригинальное округление и при этом оставлен оригинальный размер :)
005 была ошибка, после исправления все показало правильно.
006 хоть скрипт и большой, но вполне понятный. Приятно порадовало указание общего объема для текущего подкаталога. Но объем показывает неправильный.
007 хороший скрипт, понятный, красиво оформлены результаты (хотя я для себя во втором столбце выравнивание поставил по правому краю - так проще смотреть на цифры).
За тонкости три решения получили +1 (004 - за оригинальное округление, 005 и 006 - за общий объем)
_N читаб тонкс оригн
001 0 0 0
002 4 3 2
003 0 0 0
004 5 4 5
005 5 4 4
006 4 4 2
007 5 3 5
|
| |
|
|
|
|
|
|
|
для: FatBoy
(23.02.2006 в 13:40)
| | а какого рода ошибка в 005? | |
|
|
|
|
|
|
|
для: Саша
(23.02.2006 в 16:22)
| | После полного copy-paste выдало:
Warning: opendir(): open_basedir restriction in effect. File(.) is not within the allowed path(s): (/home:/home2:/tmp) in /***/***/public_html/size5.php on line 7
Warning: opendir(.): failed to open dir: Operation not permitted in /***/***/public_html/size5.php on line 7
No a dir / in /
После замены в 23 строке:
$dir = "/"; на $dir = "./"; заработало.
Выдает:
images 526940
includes 2014751
|
В той же папке (без изменений) скрипт size6.php выдает:
/***/***/public_html\images 633436
/***/***/public_html\includes 2379295
|
Разница налицо. Из-за чего такое получается искать не стал. | |
|
|
|
|
автор: Andrey_sam (23.02.2006 в 17:06) |
|
|
для: FatBoy
(23.02.2006 в 13:40)
| | Проверьте, пожалуйста, кто-нибудь скрипт 006. FatBoy пишет, что у него показывает неправильно объём текущего каталога, а у меня показывает всё правильно. Не знаю, что делать, искать здесь ошибку или всё-же всё нормально со скриптом. | |
|
|
|
|
|
|
|
для: Andrey_sam
(23.02.2006 в 17:06)
| | поменял getcwd на / и мне выдало
КАТАЛОГ РАЗМЕР
/ 1253608909
Warning: Invalid argument supplied for foreach() in 1.php on line 90
|
| |
|
|
|
|
автор: Andrey_sam (23.02.2006 в 21:07) |
|
|
для: Саша
(23.02.2006 в 17:27)
| | Но ведь чтобы попасть в каталог,гда расположен сам скрипт, нужно ставить '.' а не '/'. Если поставить '/', то попадаем в корневой каталог диска и вот здесь действительно появляется ошибка:
Warning: Invalid argument supplied for foreach() on line 90 . При этом после использования функции ListRootDir() в массиве $array почему-то ничего нету. Из-за чего это происходит: свой каталог и вложенные в него каталоги считает нормально, а на внешних каталогах появляется такая ошибка? | |
|
|
|
|
|
|
|
для: Andrey_sam
(23.02.2006 в 17:06)
| | Действительно чуть-чуть не верно, т.е. расчёт на мегабайты идёт верный, но общий объём больший чем реальный, пока не понял почему... | |
|
|
|
|
|
|
|
для: cheops
(23.02.2006 в 21:38)
| | >
>Warning: opendir(): open_basedir restriction in effect.
>File(.) is not within the allowed path(s):
>(/home:/home2:/tmp) in /***/***/public_html/size5.php on
>line 7
>
>Warning: opendir(.): failed to open dir: Operation not
>permitted in /***/***/public_html/size5.php on line 7
>No a dir / in /
>
>После замены в 23 строке:
>$dir = "/"; на $dir = "./"; заработало.
>
>Выдает:
>
>images 526940
>includes 2014751
>
|
>
>В той же папке (без изменений) скрипт size6.php
>выдает:
>
>/***/***/public_htmlimages 633436
>/***/***/public_htmlincludes 2379295
>
|
>
>Разница налицо. Из-за чего такое получается искать не стал.
я так думаю, что это от названия папки "***". Оно , скорее всего, является не допустимым именем. Я у себя даже создать папку с таким именем не могу. | |
|
|
|
|
|
|
|
для: Саша
(24.02.2006 в 09:49)
| | >я так думаю, что это от названия папки "***". Оно , скорее всего, является не допустимым именем. Я у себя даже создать папку с таким именем не могу.
:))) | |
|
|
|
|
|
|
|
для: Axxil
(24.02.2006 в 11:29)
| | но так "***" можно | |
|
|
|
|
|
|
|
для: Саша
(24.02.2006 в 11:46)
| | Судя вашей логике (что вижу так и есть) все пароли в мире из звёздочек состоят :)
И матерятся на многих сайтах тоже на звёздочках :))) | |
|
|
|
|
|
|
|
для: Axxil
(24.02.2006 в 12:03)
| | ееее... :-) | |
|
|
|