Classement fichiers par date!

Résolu
abdellah1505 Messages postés 18 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 6 décembre 2008 - 22 juin 2007 à 21:56
cs_mailys Messages postés 7 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 19 novembre 2008 - 16 nov. 2008 à 22:20
Bonsoir,

j'ai un code php qui permet de lister 3 fichiers qui ce trouve dans un dossier et je voulais savoir si il est possible de trier ses 3 fichiers par date enfaite j'aimerai que le script me liste les 3 derniers fichiers ajouté dans ce dossier.

voici mon code :

<?php


$dir = 'mondossier/';


//le nombre de derniers éléments à afficher :


$n = 3;


$good = array();


if($dir[strlen($dir)-1] !== '/') $dir .= '/';


$o = opendir($dir);


$i = 0;


while(($file = readdir($o)) !== false) {


$ext=explode(".",$file);


if($ext[1]=='zip') {


                if($i < $n) $good[] = $file;


                $i++;


        }


}


//contient tous les bons fichiers


foreach($good as $fichier)


{


    echo '[www.monsupersite.com/mondossier'.$fichier.' '.$fichier.']
';


}


?>

j'ai ajouter ceci
foreach ($good as $ctime => $fichier)  mais rien ne change
Merci d'avance 

4 réponses

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
24 juin 2007 à 16:48
Salut,
"Je n'ai pas pris la peine d'apprendre le PHP" Han pas bien XD Qu'es que tu fiches içi alors ? mdr
Bon je te file quand même ton code mis à jour (et oui je sais je suis gentils XD), mais lis quand même les commentaires
<?php
$dir = 'mondossier/'; // Dossier à analyser.
$limit = 3; // Limite de fichier à présenter.

$files = array();
if (substr($dir, -1, 1) !== '/') $dir .= '/'; // On vérifie que le dernier caractère de la chaîne "$dir" soit un "/" sinon on en ajoute un.
if (is_dir($dir) AND ($dh = opendir($dir)) !== FALSE) { // On vérifie que la variable "$dir" indique un dossier et on l'ouvre dans la variable "$dh".
    $i = 0;
    while (($file = readdir($dh)) !== FALSE) { // On lit chaques fichiers.
        $temp = explode('.', $file); // On "explose" le nom du fichier pour chaques "." trouvés.
        if (end($temp) === 'php' AND $i < $limit) { // On vérifie que le dernier texte soit "zip" et on vérifie que la limite ne soit pas dépasser.
            $files[filemtime($dir.$file)] = $file; // On place le fichier dans le tableau "$files" avec pour clé le Timestamp de la dernière modification du fichier.
            $i++; // On ajoutes 1 à la variable "$i".
        }
    }
    closedir($dh); // Quand le dossier a été lu, on le referme.
}
sort($files); // On trie les fichiers par leur clés.
$temp = array_keys($files); // On extrait les clés du tableau "$files" pour les placer en valeurs dans le tableau "$temp".
$i = -1;
while (isset($temp[++$i])) echo '[www.monsupersite.com/',$dir,$files[$temp[$i]],' ',$files[$temp[$i]],']
';
?>

For every choice, a consequence (Fable)
3
abdellah1505 Messages postés 18 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 6 décembre 2008
23 juin 2007 à 10:12
Bonjour,

Je n'ai pas pris la peine d'apprendre le PHP alors (SVP ne m'engueulez pas) :) vu que je n'ai connai rien j'aurais tout de même une question ou est-ce que il faut ajouté ce fameu filemtime($fichier) dans mon code pour avoir un classement du plus récent au plus ancien upload? j'ai tout essayé a chaque fois la page devient toute blanche svp aidez moi Merci.
0
abdellah1505 Messages postés 18 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 6 décembre 2008
5 mai 2008 à 17:31
[auteur/AUDAYLS/547458.aspx audayls] Merci ;)
0
cs_mailys Messages postés 7 Date d'inscription vendredi 30 avril 2004 Statut Membre Dernière intervention 19 novembre 2008
16 nov. 2008 à 22:20
Bonjour,
Je suis très intéressé par ce code mais j'ai besoin d'explorer tous les sous-dossier du dossier en question. Quelqu'un pourrait me proposer un code ?
Merci beaucoup.
Mailys
0