Votre question

PHP : Nombre de Mo restants dans un dossier

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
4 Octobre 2005 14:46:27

Bonjour,

Je suis en train de réaliser un Panel de gestion d'hébergement et j'aimerais savoir comment insérer le nombre de Mo restants d'un dossier (code PHP ?) sur une page d'informations concernant l'hébergement.

Merci

Autres pages sur : php nombre restants dossier

4 Octobre 2005 15:52:06

Il faut faire le contraire, tu compte l'espace utilisé dans le dossier/sous dossier actuel, et tu le soustrait du quota que tu lui attribu. C'est plus simple.
4 Octobre 2005 15:52:54

Il faut faire le contraire, tu compte l'espace utilisé dans le dossier/sous dossier actuel, et tu le soustrait du quota que tu lui attribu. C'est plus simple.
Contenus similaires
4 Octobre 2005 16:19:14

Oui voila c'est ce que je veux faire mais je ne sais pas comment :-? .
Si tu sais comment faire ou un site qui explique tout ça...
Merci
4 Octobre 2005 16:24:34

count().

php.net, réfere toi à ces fonctions.
4 Octobre 2005 16:26:48

Edit: Putain de site ! Doublon quasi a chaque réponse...
4 Octobre 2005 16:34:07

DEFINITION DE count() sur fr.php.net :

count -- Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet
Description
int count ( mixed var [, int mode] )

count() retourne le nombre d'éléments dans var, qui est généralement un tableau et tout le reste, sauf les objets, n'aura qu'un élément.

Pour les objets, count() retourne le nombre de propriétés non-statiques, sans tenir compte de la visibilité. Si vous avez SPL d'installé, vous pouvez vous accrocher à la fonction count() en implémentant l'interface Countable. Cette interface a exactement une méthode, count(), qui retourne la valeur retournée par la fonction count().

Cela n'est pas ce que je cherche car moi je cherche à inscrire le nombre de Mo restants ou utilisés dans un dossier/sous-dossiers. Count() sert à retourner des données. :-? .
Merci
4 Octobre 2005 22:06:30

Svp, vous pouvez m'aider ? (UP)
5 Octobre 2005 11:59:04

filesize

Quand on s'attaque a un panel d'hebergement, on peut quand meme feuilleter les fonctions relatives a dir et file...
5 Octobre 2005 15:18:56

je n'ai rien compris a ton script.
5 Octobre 2005 16:18:30

et bien tu prends filesize et dir .
avec dir tu parcours le dossier, pour chaque fichier trouvé, tu recuperes la taille avec filesize, et tu augmentes la variable espace_oqp. si tu tombes sur un dossier, tu le parcours et a chaque fichier trouvé tu augmentes espace_oqp. comme tu ne connais pas la profondeur en terme de sous-dossier, il faut recourir a une
fonction recursive.

sur une vraie offre d'hebergement, les quotas d'espace disque sont gérés par le systeme d'exploitation. chaque hébergé est alors un utilisateur du systeme (avec des droits forcément très limités). la verification du quota se fait donc avant l'upload. il n'est alors pas possible de le depasser. avec un script php, tu peux voir un depassement une fois qu'il a eu lieu a moins d'appeler le script a chaque demande d'upload.
5 Octobre 2005 19:05:45

Toujours pas capté... dsl
6 Octobre 2005 10:52:48

ton sujet m'a insipiré un bout de code.
s'il t'est utile, tu peux le réutiliser [quota.php]
6 Octobre 2005 21:39:18

excellent script !
je pense que je vais l'utiliser.
une petite chose :
la fonction dans ton script
  1. $quota_max= 20*1000*1000; // 20Mo

ceci sert à indiquer un quota a un dossier ?!?
comment changer le quota si c'est possible ?
merci pour le script ! ;-)
7 Octobre 2005 01:04:22

$quota_max= 20*1000*1000; // 20Mo
change la valeur entre le = et le ; à ta convenance pour changer la quantité maximum.
20*1000*1000 ça fait 20 Millions (d'octets), donc 20 Mo.

array_sum($quota_used) correspond à l'espace utilisé exprimé en octets.
$quota_unite peut prendre 3 valeurs : Octets, Ko ou Mo. On peut ainsi théoriquement changer les unités de calcul (si demain on dit 900 Ko par personne par exemple). Je dis théoriquement, car j'ai eu la flemme de tester.

note que ce script ne fait que fournir des indications, il n'empeche pas de dépasser le quota.
par contre si tu fais un formulaire d'upload en php, tu peux te servir de ces infos pour interdire le depassement de quota.
7 Octobre 2005 14:54:04

d'accord merci pour ton aide ! ;-)
7 Octobre 2005 14:59:58

Je viens d'essayer vite fais ton code, il est bien, mais il ne se stop pas, quand tu dépasses 20 Mo (Par exemple, à un moment il me marqué 112 % sur 20 Mo...)

Sinon, code très bien :-d
10 Décembre 2005 14:03:55

Bonjour, J'ai mis le script à la racine de site web hebergé chez free mais il ramene simplement la place occupée par le repertoire courant et le dernier repertoire classé par ordre alphabetique:

le dossier USER occupe 1.37 % des 100 Mo alloués
les 1.37 Mo utilisés sont répartis comme tel :
1.34 Mo dans /welcome/
0.03 Mo dans /

Alors que dans le repertoire racine j'ai 10 autres repertoires...
:-o
10 Décembre 2005 15:09:03

il te faut modifier la valeur de la variable $quota_root qui correspond au dossier qui sert de base de travail.

je lui ai donné la valeur getcwd(); qui renvoie le nom du dossier en cours.
pour qu'il scanne depuis la racine de free, je pense que tu dois lui donner la valeur $_SERVER['DOCUMENT_ROOT'];

edit: effectivement y a un bleme, c'est curieux.
10 Décembre 2005 15:48:58

problème résolu.
le tableau résultant de Dirsize n'était ni static, ni global et du coup il se faisait écraser à chaque appel de la fonction.

là j'ai testé, ça fonctionne. l'usage de $_SERVER['DOCUMENT_ROOT'] donne un résultat satisfaisant (je trouve meme qu'il montre trop de choses :biggrin: )
26 Décembre 2005 07:39:52

Hop hop hop, y'a un bug la !

Dans ton source, 1Ko = 1024 Octets, pas 1000 octets ! Tu as une perte de 24 octets a chaque kilos, ce qui fait pas mal (sur ton exemple de 20Mo ca fait presque 1Mo).

Voila, c'été juste pour ca.
26 Décembre 2005 15:38:47

je te renvoie au débat sur les mébioctets et les mégaoctets http://fr.wikipedia.org/wiki/Octet
Sachant que la capacité des disques durs sont en fait exprimés en puissance de 10, plutot qu'en puissance de 2, j'ai choisi moi aussi de me référer aux unités normalisés (l'espace compté étant un sous-ensemble de disque dur).
De fait je ne considère pas ça comme un bug.
Apres, vous en faites ce que vous voulez, hein ;)  , vous êtes desormais prévenus.
26 Décembre 2005 16:51:10

Désolé, electronitien dans l'ame, je garde mes mega octets, les pourris qui sont payés a rien faire pour nous resortir des normes, modifier des symboles qui été tres bien avant et autres, c'est pas moi qui vait les faire avancer !
Donc 1mo = 1024Ko :D 
Pour moi.
2 Juin 2007 14:58:48

Esce ce que cette variable et possible :

$quota_max= $_POST['quota'] . *1000*1000; // 50Mo, 100Mo, 250Mo, 500Mo ?
2 Juin 2007 15:26:24

ca ne signifie rien ton truc.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS