[PHP] Connaître la taille d'un répertoire sur un serveur en local...

Connaître la taille d'un répertoire sur un serveur en local... [PHP] - PHP - Programmation

Marsh Posté le 11-01-2004 à 10:59:58    

Salut,
 
Je cherche un petit script qui puisse me donner la taille d'un répertoire local, c'est pour établir donner aux utilisateurs l'espace dont ils disposent sur leur compte (sur un serveur Web pour l'hébergement). Il ne me faut donc que pouvoir retourner la taille d'un répertoire local sur le serveur. Le serveur tourne sous Windows Server 2003 avec PHP 4.3.3
 
:hello:

Reply

Marsh Posté le 11-01-2004 à 10:59:58   

Reply

Marsh Posté le 11-01-2004 à 11:27:24    

Reply

Marsh Posté le 11-01-2004 à 13:17:05    

tu fais de l'hébergement de site web PHP sur Windows 2003 Server ?

Reply

Marsh Posté le 11-01-2004 à 14:18:29    

Ok merci pour le lien. Oui je fais de l'hébergement PHP sous 2003 Server, avec base de données MySQL, j'utilise aussi l'ASP.Net et des bases de données Access. Pourquoi tu poses cette question ? :)
 
Sinon j'ai encore quelques problèmes pour ce script, j'arrive pas à avoir la taille des sous repertoires dans le répertoire.
 
:hello:

Reply

Marsh Posté le 11-01-2004 à 15:09:13    

Je me suis bien compliqué la vie, en fait il existe une fonction pour faire ca directe, pas besoin d'ajouter la taille de tous les fichiers...
 

Code :
  1. <?php
  2. $df = disk_total_space("c:/data/" );
  3. echo($df/1024/1024/1024);
  4. ?>


 
Il me reste plus qu'a arrondir tout ca et ce sera bon :)
 
EDIT: et voilà ca marche...
 

Code :
  1. <?php
  2. $df = disk_total_space("c:/data/" );
  3. echo round($df/1024/1024/1024, 2);
  4. ?>


Message édité par Webman le 11-01-2004 à 15:12:02
Reply

Marsh Posté le 11-01-2004 à 15:17:17    

Webman a écrit :

Ok merci pour le lien. Oui je fais de l'hébergement PHP sous 2003 Server, avec base de données MySQL, j'utilise aussi l'ASP.Net et des bases de données Access. Pourquoi tu poses cette question ? :)
 
Sinon j'ai encore quelques problèmes pour ce script, j'arrive pas à avoir la taille des sous repertoires dans le répertoire.
 
:hello:


C'est pas le genre de truc qui cohabite régulièrement (prix des licences)
 
perso ça serait mieux de monter 2 machines.  

Reply

Marsh Posté le 11-01-2004 à 15:20:04    

Excuse je croyais que tu faisais de l'hébergement pro. J'ai mal compris


Message édité par jagstang le 11-01-2004 à 20:20:14
Reply

Marsh Posté le 11-01-2004 à 15:25:53    

Non je suis étudiant en informatique et je bosse sur mon projet... qui est entre autre d'avoir des fonctions d'hébergement :)
 
:hello:


Message édité par Webman le 11-01-2004 à 15:28:37
Reply

Marsh Posté le 11-01-2004 à 15:33:34    

Je ne comprends pas pourquoi quand je modifie le contenu du répertoire et que j'actualise la page je retrouve toujours le même résultat, un peu comme si ke contenu de la variable était fixé en mémoire. Ne connaissant pas grand chose en PHP je voudrais savoir comment forcer le rafraichissement de ces varaibles...
 
Voilà le script:

Code :
  1. <?php
  2. $rep_user = disk_total_space("c:/data/" );
  3. $espace_libre = 32212254720 - $rep_user;
  4. echo round($espace_libre/1024/1024/1024, 2);
  5. ?>


 
:hello:
 
EDIT: apparement il y a un problème dans mon script... je sais pas ou mais c'est plus profond que ce que je pensais... il faut que je reprenne tout je crois... :d


Message édité par Webman le 11-01-2004 à 15:40:57
Reply

Marsh Posté le 11-01-2004 à 15:49:55    

J'ai trouvé, en fait $rep_user = disk_total_space("c:/data/" ); me donne la taille du disque dur et non du repertoire... aggrrrhhh je suis un âne...
Si quelqu'un à la solution je suis preneur.
 
:hello:

Reply

Marsh Posté le 11-01-2004 à 15:49:55   

Reply

Marsh Posté le 11-01-2004 à 16:02:12    

C'est bon j'ai trouvé mon bonheur, enfin j'espère...
 

Code :
  1. <?
  2. // RETURNS THE TOTAL SIZE OF ALL FILES
  3. // WITHIN A DIRECTORY AND SUBSEQUENT CHILD DIRECTORIES
  4. // LIMITED TO DIRECTORIES AND FILES OWNED BY  
  5. // THE OPERATING USER (PHP/APACHE IN MOST CASES)
  6. //
  7. // RETURNS AN INT
  8. //
  9. function dir_size($DIR = FALSE) {
  10. // IF DIR IS TRUE AND IS A DIRECTORY
  11. if ($DIR &&
  12.    is_dir($DIR)) {
  13. // ADD TRAILING SLASH
  14. if (substr($DIR,-1) != "/" ) $DIR .= "/";
  15. // OPEN DIRECTORY
  16. if ($DIR_ID = opendir($DIR)) {
  17. // LOOP THROUGH CONTENTS OF DIR
  18. while (($ITEM = readdir($DIR_ID)) !== FALSE) {
  19. // IF ITEM DOES NOT EQUAL "." AND ".."
  20. if ($ITEM != "." &&
  21.    $ITEM != ".." ) {
  22. // IF ITEM IS A DIRECTORY
  23. if (is_dir($DIR . $ITEM)) {
  24. // CALL FUNCTION RECURSIVELY
  25. $SIZE += dir_size($DIR . $ITEM);
  26. // ELSE ITEM IS A FILE
  27. } else {
  28. // ADD SIZE OF FILE
  29. $SIZE += filesize($DIR . $ITEM);
  30. }
  31. }
  32. }
  33. // CLOSE DIRECTORY
  34. closedir($DIR_ID);
  35. }
  36. }
  37. // RETURN SIZE
  38. return $SIZE;
  39. }
  40. print(dir_size("c:/mon_repertoire/" ));
  41. ?>


 
Il me retourne la bonne taille :) donc ca doit être bon :)
 
:hello:

Reply

Marsh Posté le 11-01-2004 à 18:40:12    

La solution était dans les commentaires de la page du manuel php que j'avais indiquée mais bon?


---------------
Faux & usage de faux ¤ Machins roses ¤ ASCIImage ¤ HFR Enhance v0.8.6
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed