Blog of ChristoPHPe !
Bienvenue sur mon Blog !

Blog of ChristoPHPe !

[PHP] Système de quota, graphique et textuel…

12 août 2008 à 23:31, par Christophe

Bonsoir !

J’ai moi-même cherché pendant longtemps un système de quota. Mais malheureusement, certains son pas beaux, d’autres marches pas, bref… ici, celui-ci est graphiquement correct, surtout fonctionnel et son fonctionnement est assez facile à comprendre pour les débutants :P

Voilà le code complet :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Quota Disque</title>
<style type="text/css">
.pourcentage {
	position:absolute;
	color:#FFFFFF;
	font-weight:bold;
	font-family:Arial, Helvetica, sans-serif;
	font-size:small;
	height:20px;
	text-align:center;
	padding-top:2px;
}
</style>
</head>
 
<body>
<?php
function DirSize($path , $recursive=TRUE) {
	$result = 0;
 
	if( !is_dir($path) || !is_readable($path)) {
		return 0;
	} else {
		$fd = dir($path);
		while($file = $fd->read()){
			if(($file != ".") && ($file != "..")){
				if(@is_dir("$path/$file/")) {
					$result += $recursive?DirSize("$path/$file/"):0;
				} else {
					$result += filesize("$path/$file");
				}
			}
		}
		$fd->close();
		return $result;
	}
}
 
 
$taille_du_quota = 1024; // Taille fixe du quota en Mega Octets
$taille_barre = 200; // taille de la barre totale en px
$taille_abs = $taille_du_quota / $taille_barre;
 
$rep = "./"; // chemin du répertoire a inspecter
 
$taille_utilisee = round(DirSize($rep)/1048576,2);  //DirSize($rep,false) pour non recursif.
 
$pourcentage = round(($taille_utilisee*100)/$taille_du_quota,2);  // conversion en %
 
$path_abs = "images/"; // repertoire image a la racine du site.
 
$bleue = $taille_utilisee / $taille_abs;    // taille de la barre bleue
$jaune = ($taille_du_quota - $taille_utilisee) / $taille_abs;   //taille de la barre jaune
?>
 
<div style="width:<?php echo $taille_barre; ?>px;"><div class="pourcentage" style="width:<?php echo $taille_barre; ?>px;"><?php echo $pourcentage; ?>%</div><img src="<?php echo $path_abs; ?>barre_bleue.png" width="<?php echo $bleue; ?>" height="20" title="<?php echo $pourcentage; ?>%" alt="<?php echo $pourcentage; ?>%" /><img src="<?php echo $path_abs; ?>barre_jaune.png" width="<?php echo $jaune; ?>" height="20" title="<?php echo $pourcentage; ?>%" alt="<?php echo $pourcentage; ?>%" /></div>
Vous utilisez <b><?php echo $taille_utilisee; ?> Mo</b> sur les <b><?php echo $taille_du_quota; ?> Mo</b> allou&eacute;
</body>
</html>

Pour les deux images, téléchargez la première ici, et la deuxième là

Cliquez ici pour aller sur la page d’exemple (que j’ai réduit à 50 Mo pour bien voir la deuxième barre)

Laisser un commentaire

Nom

Adresse e-Mail

Site Web

 | 




-->