Avatar billede Xelot Nybegynder
28. juli 2003 - 14:32 Der er 6 kommentarer og
2 løsninger

Vise antal mb brugt på serveren..

Hey.. kan man vise hvor mange mb jeg har brugt på min server med PHP..?!
Avatar billede zkn Nybegynder
28. juli 2003 - 14:34 #1
du kan bruge disk_free_space($dir) til at retunere fri plads i dir'et $dir.
Avatar billede ahv Nybegynder
28. juli 2003 - 14:36 #2
Dette lille script udskriver størrelsen i bytes, du kan ho altid dividere med en hel masse og få noget spændende ud af det ;o)

<?php
function dir_size($dir) {
  $current_dir_size = 0;
  if(($handle = @opendir($dir)) === false) die("Biblioteket $dir kan ikke åbnes");
  while(($file = readdir($handle)) !== false) {
    $curfile = $dir . '/' . $file;
    if(is_file($curfile)) {
      $current_dir_size += filesize($curfile);
    } elseif(is_dir($curfile) && $file != '..' && $file != '.') {
      $current_dir_size += dir_size($curfile);
    }
  }
  closedir($handle);
  return $current_dir_size;
}

echo dir_size('./mappe') . " bytes";
?>

Ved ikke om der findes en smart funktion ala zkn's til at returner antal brugt, men denne funktion burde kalre det.
Avatar billede gonza.dk Nybegynder
28. juli 2003 - 14:41 #3
en lille funktion til at angive filstørrelse i B/KB/MB/GB...

function file_size_convert($filesize){
    //skriver byte hvis filen er mindre end 1 KB
    if ($filesize < 1024){
    $filesizetype = 'B';
    }
   
    //omregner til KB hvis filen er mere end 1 KB og mindre end 1 MB
    else if (($filesize >= 1024) AND ($filesize < 1048576)){
        $filesize         = $filesize / 1024;
        $filesizetype     = 'KB';
    }
   
    //omregner til MB hvis filen er større end 1 MB og mindre end 1 GB
    else if (($filesize >= 1048576) AND ($filesize < 1073741824)){
        $filesize         = $filesize / 1048576;
        $filesizetype     = 'MB';
    }
   
    //omregner til GB hvis filen er større end 1 GB
    else if ($filesize >= 1073741824){
        $filesize         = $filesize / 1073741824;
        $filesizetype     = 'GB';
    }
   
    //runder $filesize af til $filesizedecimaler
    $filesize         = round($filesize, $filesizedecimaler);

    $return        = $filesize." ".$filesizetype
}
Avatar billede gonza.dk Nybegynder
28. juli 2003 - 14:49 #4
hovsa, der skal jo ikke være $ på return... og så manglede der en et semikolon...

function file_size_convert($filesize){
    //skriver byte hvis filen er mindre end 1 KB
    if ($filesize < 1024){
    $filesizetype = 'B';
    }
   
    //omregner til KB hvis filen er mere end 1 KB og mindre end 1 MB
    else if (($filesize >= 1024) AND ($filesize < 1048576)){
        $filesize        = $filesize / 1024;
        $filesizetype    = 'KB';
    }
   
    //omregner til MB hvis filen er større end 1 MB og mindre end 1 GB
    else if (($filesize >= 1048576) AND ($filesize < 1073741824)){
        $filesize        = $filesize / 1048576;
        $filesizetype    = 'MB';
    }
   
    //omregner til GB hvis filen er større end 1 GB
    else if ($filesize >= 1073741824){
        $filesize        = $filesize / 1073741824;
        $filesizetype    = 'GB';
    }
   
    //runder $filesize af til $filesizedecimaler
    $filesize        = round($filesize, $filesizedecimaler);

    return        = $filesize." ".$filesizetype;
}
Avatar billede tipsen Nybegynder
28. juli 2003 - 15:18 #5
gonza: En omskrivning af din funktion:

function file_size_convert($filesize){
    $sizetitles = array('B', 'KB', 'MB', 'GB', 'TB');
    $tmpcount = 0;
    while($filesize >= 1024 && $tmpcount < count($sizetitles)) {
        $filesize /= 1024;
        $tmpcount++;
    }
    return sprintf('%0.2f', $filesize) . ' ' . $sizetitles[$tmpcount];
}
echo file_size_convert(999999999);
Avatar billede Xelot Nybegynder
28. juli 2003 - 15:32 #6
wow cool.. men er der ikke en måde at checke pladsforbruget på en hel servermappe på en gang..? altså hovedmappen "public_html".. kan jeg ikke checke den..?! altså inde i den mappe ligger alle undermapperne osv. kan man ikke checke den..?
Avatar billede ahv Nybegynder
28. juli 2003 - 17:28 #7
Thjoo prøv ->

<?php
function dir_size($dir) {
  $current_dir_size = 0;
  if(($handle = @opendir($dir)) === false) die("Biblioteket $dir kan ikke åbnes");
  while(($file = readdir($handle)) !== false) {
    $curfile = $dir . '/' . $file;
    if(is_file($curfile)) {
      $current_dir_size += filesize($curfile);
    } elseif(is_dir($curfile) && $file != '..' && $file != '.') {
      $current_dir_size += dir_size($curfile);
    }
  }
  closedir($handle);
  return $current_dir_size;
}

echo dir_size('./') . " bytes";
?>
Avatar billede Xelot Nybegynder
28. juli 2003 - 23:18 #8
Tak ska i ha folkens..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester