filesize() ? comprends pas un truc

filesize() ? comprends pas un truc - PHP - Programmation

Marsh Posté le 19-03-2003 à 10:01:10    

Code :
  1. function listedir($dir)
  2. {
  3.   $dossier = opendir($dir);
  4.   while ($fichier = readdir($dossier))
  5.   {
  6.    $l = array('.', '..');
  7.    if (!in_array( $fichier, $l))
  8. {
  9.     print("$fichier<br>" );
  10.  print(filesize($fichier));
  11.  }
  12.   }
  13. closedir($dossier);
  14. }


 
je comprends pas pkoi ma fonction filesize marche pas :(

Reply

Marsh Posté le 19-03-2003 à 10:01:10   

Reply

Marsh Posté le 19-03-2003 à 10:17:33    

Fous le chemin absolu vers le fichier. Là, avec readdir() tu récupères un truc du style "monfichier.txt" et tu fais un filesize() dessus. Or, l'interpréteur PHP ne se trouve pas dans le répewrtoire que tu browses (fais un getcwd() pour savoir où il est).
Donc quand tu fais filesize(), tu le fais sur un fichier qu'il ne connaît pas donc il te retourne 0. Tu as alors le choix pour avoir la bonne réponse :
- faire un chdir() vers le répertoire que tu browses et ne rien changer à ton code. C'est crade passke ça introduit un effet de bord pas terrible (ou alors faut refaire un chdir() vers le répertoire précédent... mouais).
- passer le chemin absolu vers le fichier dans le filesize(), genre en faisant filesize($dir.$fichier) ou un truc du style.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 19-03-2003 à 10:32:15    

merci c'etait bien ca ! il fallait le chemain !
 

Code :
  1. function listedir($dir)
  2. $dossier = opendir($dir); 
  3. while ($fichier = readdir($dossier)) 
  4.   $l = array('.', '..'); 
  5.   if (!in_array( $fichier, $l))
  6.    print("$fichier<br>" );
  7. print(filesize($dir."/".$fichier));
  8. closedir($dossier);
  9. }


Message édité par VB HELP le 19-03-2003 à 10:32:55
Reply

Sujets relatifs:

Leave a Replay

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