[RESOLU]Afficher le poids des fichiers listés automatiquement en PHP

Afficher le poids des fichiers listés automatiquement en PHP [RESOLU] - PHP - Programmation

Marsh Posté le 16-12-2007 à 09:38:10    

Bonjour à tous,
 
J'ai un script PHP qui me génère une liste des fichiers dont j'ai choisi l'extension et créé automatiquement des liens.
Voilà ce que ça donne : http://www.zerobug.fr/liste-conten [...] t-php.php3
 
Juste avant le tableau, j'ai réussi à afficher le nombre de fichiers listés...et j'arrive à afficher le poids de chacun des fichiers, mais je n'ai pas encore réussi à afficher le poids total des fichiers listés.
Quelqu'un peut-il m'aider ?
 
Merci


Message édité par hyperion66 le 17-12-2007 à 14:15:17

---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 16-12-2007 à 09:38:10   

Reply

Marsh Posté le 16-12-2007 à 12:21:02    

Comment calcules tu le nombre de fichier :??:
Suffit de faire un compteur :spamafote:

Reply

Marsh Posté le 16-12-2007 à 14:40:01    

Le code source est maintenant dispo sur la même page dans la liste des fichiers. C'est le fichier code-source-php.txt.


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 16-12-2007 à 14:49:38    

Suffit comme dit leflo, de mettre un compteur où tu additionnes le poids. Et le code est un peu lourdingue, pourquoi répéter à chaque fois l'extension via "strtolower(strrchr($filename, '.'))" ? Suffit de le faire une fois, ce serait plus léger. Sinon la fonction glob fait déjà ça toute seule :)

Reply

Marsh Posté le 16-12-2007 à 15:15:29    

S'il y a moyen de simplifier le code, je suis preneur.
Je n'ai pas de connaissances en PHP....tout au moins sont elles très limitées.


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 00:13:23    

Personne pour me guider vraiment ?


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 05:20:39    

Pour le poids total :??: Je t'ai tout dit :spamafote: Pour la simplification j'arrive pas à lire ton code :spamafote:

Reply

Marsh Posté le 17-12-2007 à 08:34:46    

Suffit de faire un compteur...désolé, je n'ai aucune connaissance en PHP.
J'avais déjà tenté des compteurs avec mes faibles connaissances, mais ça me donnait le poids de tous les fichiers du dossier, et pas seulement le poids des fichiers listés.


Message édité par hyperion66 le 17-12-2007 à 08:50:45

---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 09:01:23    

Mais t'as déjà fait de la prog dans d'autres langages, nan ?

Reply

Marsh Posté le 17-12-2007 à 10:02:21    

Non, mis à part du HTML !


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 10:02:21   

Reply

Marsh Posté le 17-12-2007 à 11:27:59    

Tu affiches les poids dans ton tableau ! Suffit que, au fur et à mesure que tu les affiches, tu les additionnes ! stout !


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 17-12-2007 à 11:29:32    

Je me doute bien...mais ne sait pas comment mettre ça en pratique.


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 11:52:26    

Bonjour
Tu déclare une variable avant ton foreach  
 
et au moment du round(filesize($dir."/".$pdf_file)/1024,2) .'Ko bah tu incrémente ta variable de ton petit round :)  
 
et voila après ton foreach t'aura la somme totale.
 

Reply

Marsh Posté le 17-12-2007 à 11:58:20    

Bon, je vous donne le code car je ne comprends rien à ce que vous dite. J'ai réussi à faire ce code après pas mal de temps, à partir de bouts de codes préexistants....mais au-delà, je suis totalement incompétent.

Code :
  1. <?php
  2. function listing($dir)
  3. {
  4. $pdf_files = array();
  5. $dh = opendir($dir);
  6. while (false !== ($filename = readdir($dh)))
  7. {
  8. if(strtolower(strrchr($filename, '.')) == '.pdf')
  9. $pdf_files[] = $filename;
  10.   elseif(strtolower(strrchr($filename, '.')) == '.php3')
  11. $pdf_files[] = $filename;
  12.     elseif(strtolower(strrchr($filename, '.')) == '.html')
  13. $pdf_files[] = $filename;
  14.      elseif(strtolower(strrchr($filename, '.')) == '.txt')
  15. $pdf_files[] = $filename;
  16.      elseif(strtolower(strrchr($filename, '.')) == '.php')
  17. $pdf_files[] = $filename;
  18. }
  19. rsort($pdf_files);
  20. foreach($pdf_files as $pdf_file)
  21. {
  22. /* à partir de là, on créé le lien forçant le
  23. //téléchargement du fichier PDF
  24. //Pour cela, il vous faudra créer dans chaque répertoire à lister
  25. //un fichier php (ici nommé down.php) composé comme ceci :
  26. //<?  
  27.     //header("Content-type: application/pdf" );  
  28.     //header("Content-Disposition: attachment; filename=$pdf" );  
  29.     //readfile($pdf);  
  30.     //?> */
  31.   echo '<tr>
  32.           <td><p align="center"><a href="'.rawurlencode($dir).'/down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a></p></td>
  33.         <td><p align="center">'.date ("d/m/Y", filectime($dir."/".$pdf_file)).'</p></td><td><p align="center">'.round(filesize($dir."/".$pdf_file)/1024,2) .'Ko</p></td>
  34.         </tr>';
  35. }
  36. echo '<p>Fichiers diponibles : '.count($pdf_files).'</p>';
  37.  }
  38.  
  39. listing($path);
  40. $urlComplete= rawurlencode(str_replace ('/', '', $value));
  41. ?>


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 12:02:02    

Ce qu'il te manque avant tout alors, est d'apprendre à programmer, tout simplement.
 
En gros, faut déclarer une variable, initialisée à 0, et y additionner la taille des fichiers. C'est simplement une somme dans une variables, c'est le genre d'exercices qui fait partie de la base quand t'apprend.
 
Faut mieux que tu cherches des cours ou des tutoriaux sur la programmation, ça sera 10x plus simple :)

Reply

Marsh Posté le 17-12-2007 à 12:06:30    

Bon on reprend
Tu veux avoir la somme des poids.
Donc tu dois à un moment donné les additionnés.
Le foreach est une boucle parcourant tes fichiers .Donc c'est dedant que tu devra additionné tes machins.
le Poids tu l'obtiens avec le round(gnagnagna) donc c'est ce round qu'il faudra additionné avec les précédents et les suivants.
Pour ça il faut que tu dise avant tout tien une petite variable vide qui prendra mes rounds
ça donne ça
 

Code :
  1. function listing($dir)
  2. {
  3. $pdf_files = array();
  4. $dh = opendir($dir);
  5. while (false !== ($filename = readdir($dh)))
  6. {
  7. if(strtolower(strrchr($filename, '.')) == '.pdf')
  8. $pdf_files[] = $filename;
  9.    elseif(strtolower(strrchr($filename, '.')) == '.php3')
  10. $pdf_files[] = $filename;
  11.      elseif(strtolower(strrchr($filename, '.')) == '.html')
  12. $pdf_files[] = $filename;
  13.       elseif(strtolower(strrchr($filename, '.')) == '.txt')
  14. $pdf_files[] = $filename;
  15.       elseif(strtolower(strrchr($filename, '.')) == '.php')
  16. $pdf_files[] = $filename;
  17. }
  18. rsort($pdf_files);
  19. $sommepoids = "";
  20. foreach($pdf_files as $pdf_file)
  21. {
  22. /* à partir de là, on créé le lien forçant le
  23. //téléchargement du fichier PDF
  24. //Pour cela, il vous faudra créer dans chaque répertoire à lister
  25. //un fichier php (ici nommé down.php) composé comme ceci :
  26. //<?   
  27.      //header("Content-type: application/pdf" );   
  28.      //header("Content-Disposition: attachment; filename=$pdf" );   
  29.      //readfile($pdf);   
  30.      //?> */
  31. $poidsdufichier = round(filesize($dir."/".$pdf_file)/1024,2);
  32. $sommepoids += $poidsdufichier;
  33.   echo '<tr>
  34.            <td><p align="center"><a href="'.rawurlencode($dir).'/down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a></p></td>
  35.          <td><p align="center">'.date ("d/m/Y", filectime($dir."/".$pdf_file)).'</p></td><td><p align="center">'. $poidsdufichier.'Ko</p></td>
  36.          </tr>';
  37. }
  38. echo '<p>Fichiers diponibles : '.count($pdf_files).'</p>';
  39. echo 'poids total'.$sommepoids;
  40. }
  41.  
  42. listing($path);
  43. $urlComplete= rawurlencode(str_replace ('/', '', $value));
  44. ?>

Reply

Marsh Posté le 17-12-2007 à 12:07:12    

FlorentG a écrit :

Ce qu'il te manque avant tout alors, est d'apprendre à programmer, tout simplement.
 
En gros, faut déclarer une variable, initialisée à 0, et y additionner la taille des fichiers. C'est simplement une somme dans une variables, c'est le genre d'exercices qui fait partie de la base quand t'apprend.
 
Faut mieux que tu cherches des cours ou des tutoriaux sur la programmation, ça sera 10x plus simple :)


 
 [:benou_grilled]  
 

Reply

Marsh Posté le 17-12-2007 à 12:55:56    

Merci beaucoup, c'est exactement ce qu'il me fallait !


---------------
MATOS VELO - Club Strava Matos Vélo
Reply

Marsh Posté le 17-12-2007 à 13:42:56    

Met le topic en résolu please :)

Reply

Sujets relatifs:

Leave a Replay

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