<?php
error_reporting(E_ALL);
// De directory van de user
$basedir = "/home/wso/jochen/";
// De maximum grootte die de map mag zijn:
$maxsize = 1024*1024*1024; // in KB
// Functie om bestandsgroottes om te zetten in Kb, Mb en Gb
function file_size($filesize){
if ($filesize < 1024){
return $filesize . " b";
}else{
if (($filesize/1024) < 1024){
return round(($filesize/1024), 1) . " Kb";
}else{
if (($filesize/(1024*1024)) < 1024){
return round(($filesize/(1024*1024)), 1) . " Mb";
}else{
return round(($filesize/(1024*1024*1024)), 1) . " Gb";
}
}
}
}
// De functie om de graph te tekenen
function check_totaldir_size($dir, $folder_size, $folder_max){
if ($folder_size < $folder_max){
$width = 10;
$width += round((($folder_size / $folder_max) * 150), 0);
echo "<div style=\"height:8px;background-color:#CCCCCC;border:1px solid #333333;width:150px;\"><div style=\"background-image:url('bar.gif');background-repeat:no-repeat;height:8px;font-size:2px;width:" . $width . "px;\"></div></div>\n";
}else{
echo "<span style=\"color:#FF0000;font-weight:900;\">te groot!</span>\n";
}
}
// De recursieve functie om de totale grootte te berekenen
function get_totaldir_size($dir){
$the_size = 0;
$dh = opendir($dir);
while (false !== ($filename = readdir($dh))) {
if (($filename != ".") && ($filename != "..")){
if (filetype($dir . "/" . $filename) == "dir"){
$the_size += get_totaldir_size(($dir . "/" . $filename));
}else{
$the_size += filesize($dir . "/" . $filename);
}
}
}
return $the_size;
}
$folder_size = get_totaldir_size($basedir);
$ba = check_totaldir_size ($basedir, $folder_size, $maxsize);
echo $ba;
echo $basedir . "<br />\n";;
echo "Gebruikt: " . file_size($folder_size) . " van " . file_size($maxsize) . "<br />\n";
?>