Sujet : Calcul de l'espace disque disponible

Bonjour,
Quand j'essaie de calculer l'espace disque disponible de ma partition avec ce script :

<?
$dir = 'home/users/00/33/af/home/';
$free = disk_free_space($dir);
$total = disk_total_space($dir);
$free_to_mbs = $free / (1024*1024)*1024;
$total_to_mbs = $total / (1024*1024)*1024;
echo $free_to_mbs.'MB / '.$total_to_mbs.' MB';
?>

(Trouvé sur PHP.net); ce message d'erreur s'affiche :

Warning: disk_free_space() [function.disk-free-space]: No such file or directory in /home/users/00/33/af/home/www/index.php on line 232

Warning: disk_total_space() [function.disk-total-space]: No such file or directory in /home/users/00/33/af/home/www/index.php on line 233

Pouvez vous m'aider ?
Merci

2

Re: Calcul de l'espace disque disponible

bonjour,

je n'ai pas étudier votre script, voici celui que j'utilise, ex : http://modos.lescigales.org/espace_disk/

placer les deux fichiers dans le même dossier!

le fichier image: etat_espace.php

<?php
/*cette fonction indique que la page devra etre interprétée comme une image PNG*/
     header ("Content-type: image/png");
 
/*on crée une image de 200 pixels de large sur 20 de haut*/
     $image = imagecreate(200,20);
 
/* la valeur de remplissage, nombre compris entre 0 et 100 inclus */
 
$pc = $_GET['pc'];   
 
     /* pour une image de 200 px, la partie à remplire en pourcentage fait 198px... on calcule la longueur à remplir en pixels */
     $x=($pc*198)/100;
 
     /*définition des couleurs... l'image est automatiquement remplie avec la première couleur que vous définissez. Ici on aura un fond blanc */
     $blanc=imagecolorallocate($image, 255, 255, 255);
     $noir=imagecolorallocate($image, 0, 0, 0);
     $bleu=imagecolorallocate($image, 170, 204, 238);
 
/*on fait un petit cadre noir sur le pourtour de l'image*/
     imagerectangle($image, 0, 0, 199, 19, $noir);
 
     /*dessin du remplissage en fonction de $x : on dessine un rectangle de $x pixels de large rempli en bleu*/
     imageFilledRectangle($image, 1, 1, $x, 18, $bleu);
 
     /*on place le texte au milieu : [$pc %]...*/
     imagestring($image, 3, 65, 1, $pc."%", $noir);
 
/*Pour finir, on génère l'image en png§ */
     imagepng($image);
?>

le ficher de calcul et d'affichage: calcul_espace.php

<!DOCTYPE html>
<html lang="fr">
<head>
    <title>calcul espace disque    </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
</head>
<body>
 
<?php
$espace_disk = 100 ; //taille en Mo
$dir = '.'; // dossier a calculer ( mettre un point pour le dossier ou est le script), ../ pour remonter dans les dossiers
 
function poids($rep)
{
    $t = null ;
    $r = @opendir($rep);
    while( $dir=@readdir($r) )
    {
        if( !in_array($dir, array("..", ".")) )
        {
            if( is_dir("$rep/$dir") )
            {
                $t += poids("$rep/$dir");
            }
            else
            {
                $t += @filesize("$rep/$dir");
            }
        }
    }
    @closedir($r);
    return $t;
}
 
function unite($valeur)
{
    if( $valeur >= pow(1024, 3) )
    {
        $valeur = round( $valeur / pow(1024, 3), 2);
        return $valeur . ' go';
 
    }
    elseif( $valeur >=  pow(1024, 2) )
    {
        $valeur = round( $valeur / pow(1024, 2), 2);
        return $valeur . ' mo';
 
    }
    else
    {
        $valeur = round( $valeur / 1024, 2);
        return $valeur . ' ko';
 
    }
}
 
 
 
$pourcentage = (((round(poids($dir)/ pow(1024, 2), 2))*100)/$espace_disk);
 
// j'affiche l'image
echo 'Etat de l\'espace utilisé: ' . unite(poids($dir)) .' soit: <img src="etat_espace.php?pc='.$pourcentage.'" alt="espace disque occupé" /> sur '.$espace_disk.' Mo.<br />';
?>

</body>
</html>

Il est surement possible de rendre le script plus léger.....

Re: Calcul de l'espace disque disponible

Merci, je vais tester ceci. Je ne l'utiliser ai pas comme image (car je me créé un panel de gestion). Par contre, j'ai quelques problème avec la fonction file_get_contents, j'ai souvent un erreur connection refused, surtout quand on tente d'accéder à un script du serveur.