IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Trier les dossier et les fichiers par date de dernière modification


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut Trier les dossier et les fichiers par date de dernière modification
    Bonjour, après quelque recherche sans solution, je sollicite votre appui pour trier un répertoire par le critère dernière date de modification du dossier
    et aussi trier les fichiers par le même critère
    voici mon code que j'utilise déjà avec les critères "sort" ou "rsort" (alphabetiquement)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $dir_nom = '.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
    $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
    $fichier= array(); // on déclare le tableau contenant le nom des fichiers
    $dossier= array(); // on déclare le tableau contenant le nom des dossiers
    while($element = readdir($dir)) {
    	if($element != '.' && $element != '..') {
    		if (!is_dir($dir_nom.'/'.$element)) {$fichier[] = $element;}
    		else {$dossier[] = $element;}
    	}
    }
     
    closedir($dir);
     
    if(!empty($dossier)) {
    	sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant	
    		foreach($dossier as $lien){
    			echo "<a href=\"$dir_nom/$lien\">$lien</a>";
    		}
     
    }
     
    if(!empty($fichier)){
    	sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant	
    		foreach($fichier as $lien) {
    			echo "<a href=\"$dir_nom/$lien \">Télécharger ($lien)</a>";
    		}
     
     }
    ?>
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il suffit de lire la date et de trier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $dir_nom = '.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
    $dir = scandir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
    $fichier= array(); // on déclare le tableau contenant le nom des fichiers
    $dossier= array(); // on déclare le tableau contenant le nom des dossiers
    foreach ($dir as $element) {
    	if($element != '.' && $element != '..') {
                                $stat = stat($dir_nom . '/' . $element);
                                $date = $stat['mtime'];
    		if (!is_dir($dir_nom.'/'.$element)) {$fichier[$element] = $date; }
    		else {$dossier[ $element] = $date; }
    	}
    }
     
    asort($dossier);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Merci!
    Etant O en php voila ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <?php
    $dir_nom = '.'; // dossier listé (pour lister le répertoir courant : $dir_nom = '.'  --> ('point')
    $dir = scandir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas'); // on ouvre le contenu du dossier courant
    $fichier= array(); // on déclare le tableau contenant le nom des fichiers
    $dossier= array(); // on déclare le tableau contenant le nom des dossiers
    foreach ($dir as $element) {
    	if($element != '.' && $element != '..') {
                                $stat = stat($dir_nom . '/' . $element);
                                $date = $stat['mtime'];
    		if (!is_dir($dir_nom.'/'.$element)) {$fichier[$element] = $date; }
    		else {$dossier[ $element] = $date; }
    	}
    }
     
    closedir($dir);
     
    if(!empty($dossier)) {
    	asort($dossier); // pour le tri croissant, rsort() pour le tri décroissant	
    		foreach($dossier as $lien){
    			echo "<a href=\"$dir_nom/$lien\">$lien</a>";
    		}
     
    }
     
    if(!empty($fichier)){
    	sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant	
    		foreach($fichier as $lien) {
    			echo "<a href=\"$dir_nom/$lien \">Télécharger ($lien)</a>";
    		}
     
     }
    ?>
    et j'obtient comme erreur ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ( ! ) Warning: closedir() expects parameter 1 to be resource, array given in C:\wamp\www\ISLAMSPIP\mp3preches\MP3\code.php on line 16
    Call Stack
    #	Time	Memory	Function	Location
    1	0.0021	374808	{main}( )	..\code.php:0
    2	0.0242	386520	closedir ( )	..\code.php:16
    1391732236139173728113917698291391769835139176984013917698451391769854139176988313917698901391769909139176991513917699211391769926139176993213917699401391769946139176995213917699611391769966139176997113917699761391769985139176999113917699971391770003139177000913917700141391770027139177003613918144711391896556139214711213937841891393886568139556702214000201661400591820140062065414008894121401351111Télécharger (1401365476)

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il n'y a pas besoin de closedir() puisqu'il n'y a pas d'opendir().
    Si tu regardes bien mon code, le nom du fichier/dossier est en clef du tableau et non plus en valeur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Août 2010
    Messages
    99
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 99
    Par défaut
    Effectivement en enlevant closedir() l'erreur part mais il reste le fait qu'il affiche des tas de chiffre au lieu du nom de mes dossiers.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1391732236139173728113917698291391769835139176984013917698451391769854139176988313917698901391769909139176991513917699211391769926139176993213917699401391769946139176995213917699611391769966139176997113917699761391769985139176999113917699971391770003139177000913917700141391770027139177003613918144711391896556139214711213937841891393886568139556702214000201661400591820140062065414008894121401351111Télécharger (1401366326)

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme je viens de te dire le nom du fichier est en clef du tableau et pas en valeur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/12/2011, 16h01
  2. [JFileChooser] Trier les fichiers par date de modification
    Par stounouslous dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 10/05/2008, 12h47
  3. Réponses: 35
    Dernier message: 21/05/2006, 21h01
  4. Réponses: 3
    Dernier message: 12/09/2005, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo