<?php
function
getDirSize(
$dir
)
{
$handle
= opendir(
$dir
);
while
(false!==(
$FolderOrFile
= readdir(
$handle
)))
{
if
(
$FolderOrFile
!=
"."
&&
$FolderOrFile
!=
".."
)
{
if
(
is_dir
(
"$dir/$FolderOrFile"
))
{
$sizeResult
+= getDirSize(
"$dir/$FolderOrFile"
);
}
else
{
$sizeResult
+=
filesize
(
"$dir/$FolderOrFile"
);
}
}
}
closedir
(
$handle
);
return
$sizeResult
;
}
function
getRealSize(
$size
)
{
$kb
= 1024;
$mb
= 1024 *
$kb
;
$gb
= 1024 *
$mb
;
$tb
= 1024 *
$gb
;
if
(
$size
<
$kb
)
{
return
$size
.
" B"
;
}
else
if
(
$size
<
$mb
)
{
return
round
(
$size
/
$kb
,2).
" KB"
;
}
else
if
(
$size
<
$gb
)
{
return
round
(
$size
/
$mb
,2).
" MB"
;
}
else
if
(
$size
<
$tb
)
{
return
round
(
$size
/
$gb
,2).
" GB"
;
}
else
{
return
round
(
$size
/
$tb
,2).
" TB"
;
}
}
echo
getRealSize(getDirSize(
'D:/AppServ/www/mytest/'
));
function
dirsize(
$dir
)
{
$handle
=opendir(
$dir
);
$size
= 0;
while
(
$file
=readdir(
$handle
) )
{
if
( (
$file
==
"."
) || (
$file
==
".."
) )
continue
;
if
(
is_dir
(
"$dir/$file"
) )
$size
+= dirsize(
"$dir/$file"
);
else
$size
+=
filesize
(
"$dir/$file"
);
}
closedir
(
$handle
);
return
$size
;
}
$big
=dirsize(dirname(
$_SERVER
[
'SCRIPT_FILENAME'
]).
"/"
);
echo
'('
.
$big
.
' bytes)'
;