Страница 1 из 1

Ошибка скрипта при выводе папки и размера её

Добавлено: 2010-09-01 14:53:13
bobot
Задача у меня такая надо вывести размер папок и соответствующего юзера с Mysql

скрипт вывод размера папки работает (size.php)

Код: Выделить всё

<?php
$size = '';
size_of_dir_num('/mail/domain/bobot/Maildir');
function size_of_dir_num($path)
{

$dir = opendir($path);
global $size;
while($d = readdir($dir))
{
if ($d == '.' || $d == '..') continue;
if (is_file($path.'/'.$d))
{
$size = $size + filesize($path.'/'.$d);
}
else if (is_dir($path.'/'.$d)) size_of_dir_num($path.'/'.$d);
}

}
#echo $size;
$k = ($size / 1024 / 1024);
#echo ($size / 1024 / 1024);
echo $k;
echo(' mb');
?>
работает на ура!! А вот когда я соединяю два скрипта и маленькое изменение делаю:

Код: Выделить всё

$DBSERVER = yupi;
$DBUSER = yuitr;
$DBPASS = hjkk;
$DB = hyuui;
$link = mysql_connect("$DBSERVER", "$DBUSER", "$DBPASS")
or die("Could not connect: " . mysql_error());
mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
$sql = mysql_query("select*from users" );

$row=mysql_fetch_array($sql);
while($row=mysql_fetch_array($sql)){    //вывод поля в mysql
$p=$row["username"]; разбиваем на массив 
include 'size.php';   ---------это скрипт я написал его выше , тут включил его выполнение
echo $p;    // вывод самого юзера
echo $k;    //Размер  папки юзера
}



А вот сама ошибка

Код: Выделить всё

 saa36.586560249329  ---вот правда показало юзера и размер , но одного, вроде как цикл не работает
Fatal error: Cannot redeclare size_of_dir_num() (previously declared in /usr/local/www/mail/dynamo/size.php:5) in /usr/local/www/mail/dynamo/size.php on line 20


оно матюгается на строчку

Код: Выделить всё

а вот тут ошибка в строчке где написано size_of_dir_num('/mail/domain/'.$p.'/Maildir');

Re: Ошибка скрипта при выводе папки и размера её

Добавлено: 2010-09-01 15:02:33
masterito
Вы скрипт инклудите в цикле.

Re: Ошибка скрипта при выводе папки и размера её

Добавлено: 2010-09-01 15:16:19
bobot
masterito писал(а):Вы скрипт инклудите в цикле.
А как по другому пройти по всем юзерам таблице

Re: Ошибка скрипта при выводе папки и размера её

Добавлено: 2010-09-01 15:23:20
masterito
Функция должна быть объявлена один раз в скрипте.
Как это реализовать - решайте уже сами.

Re: Ошибка скрипта при выводе папки и размера её

Добавлено: 2010-09-26 22:26:21
Т.Михаил
Дарю ))

Код: Выделить всё

function getDirSize($dir){
	$sum = 0;
	foreach(glob($dir."/*") as $val){ (is_file($val)) ? $sum += filesize($val) : $sum += getDirSize($val); };
	return $sum;
};