Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обсуждение задачи N 8
 
 автор: cheops   (22.02.2006 в 23:39)   письмо автору
 
 

Мне очень понравились решения, не думал, что с такой лёгкостью они будут выполнены. Читабельность оценивал по 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

   
 
 автор: FatBoy   (23.02.2006 в 13:40)   письмо автору
 
   для: 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

   
 
 автор: Саша   (23.02.2006 в 16:22)   письмо автору
 
   для: FatBoy   (23.02.2006 в 13:40)
 

а какого рода ошибка в 005?

   
 
 автор: FatBoy   (23.02.2006 в 19:00)   письмо автору
 
   для: Саша   (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 пишет, что у него показывает неправильно объём текущего каталога, а у меня показывает всё правильно. Не знаю, что делать, искать здесь ошибку или всё-же всё нормально со скриптом.

   
 
 автор: Саша   (23.02.2006 в 17:27)   письмо автору
 
   для: 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 почему-то ничего нету. Из-за чего это происходит: свой каталог и вложенные в него каталоги считает нормально, а на внешних каталогах появляется такая ошибка?

   
 
 автор: cheops   (23.02.2006 в 21:38)   письмо автору
 
   для: Andrey_sam   (23.02.2006 в 17:06)
 

Действительно чуть-чуть не верно, т.е. расчёт на мегабайты идёт верный, но общий объём больший чем реальный, пока не понял почему...

   
 
 автор: Саша   (24.02.2006 в 09:49)   письмо автору
 
   для: 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 
>

>
>Разница налицо. Из-за чего такое получается искать не стал.

я так думаю, что это от названия папки "***". Оно , скорее всего, является не допустимым именем. Я у себя даже создать папку с таким именем не могу.

   
 
 автор: Axxil   (24.02.2006 в 11:29)   письмо автору
 
   для: Саша   (24.02.2006 в 09:49)
 

>я так думаю, что это от названия папки "***". Оно , скорее всего, является не допустимым именем. Я у себя даже создать папку с таким именем не могу.

:)))

   
 
 автор: Саша   (24.02.2006 в 11:46)   письмо автору
 
   для: Axxil   (24.02.2006 в 11:29)
 

но так "***" можно

   
 
 автор: Axxil   (24.02.2006 в 12:03)   письмо автору
 
   для: Саша   (24.02.2006 в 11:46)
 

Судя вашей логике (что вижу так и есть) все пароли в мире из звёздочек состоят :)
И матерятся на многих сайтах тоже на звёздочках :)))

   
 
 автор: Саша   (24.02.2006 в 12:27)   письмо автору
 
   для: Axxil   (24.02.2006 в 12:03)
 

ееее... :-)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования