liste de fichiers dans un array trié par date : 3eme fichier non listé

liste de fichiers dans un array trié par date : 3eme fichier non listé - PHP - Programmation

Marsh Posté le 06-06-2015 à 23:04:09    

Bonjour,
 
J'ai un souci avec un code.
J'ai 6 fichiers dans un dossier.
Il ne m'en liste que 5...
 
Ce sont des photos en jpg.
_DSC9665 _DSC9693 etc.. il ne liste pas le 3eme _DSC9854...
 
Qu'ais-je fais de mal ?
 
Bonne journée  
 
=====================
 
$dirname = 'mjc/jazz/';
$dir = opendir($dirname);
 
while ($file = readdir($dir))
{
 if($file != '..' && $file !='.' && $file !='')
    {
   $nom[]=$file;
  $date[]=date("Y/m/d - h:i:s",filemtime($dirname.$file));
  $tab[$date[$i]]=$nom[$i];
  $i++;
 }
}
 
ksort($tab);
 
foreach ($tab as $key => $val)
    {
    print $val."-".$key."<br>";
    }
 
closedir($dir);

Reply

Marsh Posté le 06-06-2015 à 23:04:09   

Reply

Marsh Posté le 06-06-2015 à 23:10:04    

Je viens de réup le fichier qui pourtant était parfaitement lisible.
Je sent que ca va être ingérable si ce code est susceptible à ce point.
 
Avez-vous une astuce pour s'assurer que tous les fichiers soient bien dispo et pour savoir lesquels je dois réup ?  
 
A cet instant je pense à comparer les fichier présent (le while les nomment tous) au fichier listés dans l'array.
 
Car c'est quand le code tente de le mettre dans l'array que le fichier n'est pas passé. Si je met un echo juste avant $nom[] ca me liste 6 fichiers. Si je fait un vardump avant le ksort, ca ne me mettait que 5 fichiers.

Reply

Marsh Posté le 07-06-2015 à 16:16:25    

Code :
  1. $date[]=date("Y/m/d - h:i:s",filemtime($dirname.$file)); 
  2.         if (isset($tab[$date[$i]])) {
  3.               echo "il y a déjà un fichier dans cette case du tableau, TODO: trouver une autre solution !";
  4.         }
  5.  $tab[$date[$i]]=$nom[$i];


 
La date est utilisé comme clef pour l'array tab, si plusieurs fichiers ont la même date à la seconde près, ils ne seront compté qu'une seule fois. Solution : ne pas utiliser de date comme clef.

Reply

Marsh Posté le 08-06-2015 à 10:36:40    

Ou mettre un tableau sur la clé date, comme ça, tu peux avoir plusieurs fichiers ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 08-06-2015 à 14:49:07    

Je croyais que c'était en micro secondes :(
Merci.
Je suis pas doué avec les tableaux, je n'arrive pas à comprendre comment il se forment (j'ai pas d'image mentale). Vous auriez un lien qui puisse m'aider ?
 
Pour le moment j'ai donc pris la solution de ralentir le chargement des fichiers (... cache misère de minable lol

Reply

Sujets relatifs:

Leave a Replay

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