note 36529 deleted from function.disk-free-space by aidan
| From: | aidan@php.net | Date: | Sat, 16 Oct 2004 00:40:28 +0000 |
| Subject: | note 36529 deleted from function.disk-free-space by aidan | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-78626@lists.php.net to get a copy of this message | ||
Note Submitter: laurie at nospam dot oneuponedown dot com
----
Adapt/refinement to "nospam at jusunlee dot com" spaceUsed:
<?
// RETURNS THE TOTAL SIZE OF ALL FILES
// WITHIN A DIRECTORY AND SUBSEQUENT CHILD DIRECTORIES
// LIMITED TO DIRECTORIES AND FILES OWNED BY
// THE OPERATING USER (PHP/APACHE IN MOST CASES)
//
// RETURNS AN INT
//
function dir_size($DIR = FALSE) {
// IF DIR IS TRUE AND IS A DIRECTORY
if ($DIR &&
is_dir($DIR)) {
// ADD TRAILING SLASH
if (substr($DIR,-1) != "/") $DIR .= "/";
// OPEN DIRECTORY
if ($DIR_ID = opendir($DIR)) {
// LOOP THROUGH CONTENTS OF DIR
while (($ITEM = readdir($DIR_ID)) !== FALSE) {
// IF ITEM DOES NOT EQUAL "." AND ".."
if ($ITEM != "." &&
$ITEM != "..") {
// IF ITEM IS A DIRECTORY
if (is_dir($DIR . $ITEM)) {
// CALL FUNCTION RECURSIVELY
$SIZE += dir_size($DIR . $ITEM);
// ELSE ITEM IS A FILE
} else {
// ADD SIZE OF FILE
$SIZE += filesize($DIR . $ITEM);
}
}
}
// CLOSE DIRECTORY
closedir($DIR_ID);
}
}
// RETURN SIZE
return $SIZE;
}
print(dir_size("/path/to/directory/"));
?>