Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Не могу написать функцию
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (1): [1]   

> Описание: рекурсивная функция определения размера папки
Black Stork KCO
Отправлено: 15 Июля, 2007 - 15:14:08
Post Id



Member


Покинул форум
Сообщений всего: 124
Дата рег-ции: Апр. 2005  
Откуда: Perm

Карма 0




Приспичило мне тут написать функцию, которая вычисляет весь размер папки

CODE:

function dir_size ($ent)
{
global $size;
$size2=0;

if ($handle = opendir($ent)) {
while (false !== ($file = readdir($handle))) {
if (is_dir($file) && ($file != ".") && ($file != ".."))
dir_size("$ent/$file");
elseif (($file != ".") && ($file != ".."))
$size2+=filesize("$ent/$file");
}
closedir($handle);
}
echo $ent.' '.$size2.'<br>';
$size+=$size2;
}

Вызывается например
dir_size('.');
или
dir_size('forum');
Но она не хочет заходить в поддиректории. В чем касяк?

(Отредактировано автором: 15 Июля, 2007 - 15:20:01)

 
 Top
Леголегс Администратор
Отправлено: 15 Июля, 2007 - 15:58:00
Post Id



JS-маньяк


Покинул форум
Сообщений всего: 2109
Дата рег-ции: Июль 2004  
Откуда: Липецк

Карма 17




А хостинг не на винде случайно? или в денвере запускаешь?
 
 Top
Black Stork KCO
Отправлено: 15 Июля, 2007 - 16:14:14
Post Id



Member


Покинул форум
Сообщений всего: 124
Дата рег-ции: Апр. 2005  
Откуда: Perm

Карма 0




Леголегс пишет:
А хостинг не на винде случайно? или в денвере запускаешь?

Хостинг линуксовый (если верить phpinfo())
А дома запускаю под виндой. Сервер конфигурировал сам.
 
 Top
Black Stork KCO
Отправлено: 15 Июля, 2007 - 16:16:46
Post Id



Member


Покинул форум
Сообщений всего: 124
Дата рег-ции: Апр. 2005  
Откуда: Perm

Карма 0




Как выяснил, в некоторые поддиректории заходит. Почему - непонятно. Принцип выбора - тоже непонятен.
 
 Top
TvoyWeb Администратор
Отправлено: 16 Июля, 2007 - 02:26:03
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




Black Stork KCO
CODE:
<?php
function dir_size ($parentdir) {
global $size;
$size2=0;

$d = dir($parentdir);
while (false !== ($file = $d->read())) {
if (is_dir($parentdir."/".$file) && ($file != ".") && ($file != "..")) {
dir_size($parentdir."/".$file);
} elseif (is_file($parentdir."/".$file)) {
$size2+=filesize($parentdir."/".$file);
}
}
$d->close();
echo $parentdir.' '.$size2.'<br>';
$size+=$size2;
}
dir_size (".");
?>

Я обычно пользуюсь встроенным классом dir(). Твоя же ошибка вот здесь is_dir($file).
Нужно либо менять корневую директорию для скрипта, либо дописывать полный абсолютный путь от скрипта.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 4 (гостей: 4, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0455]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33