[RESOLU] lister un répertoire dans l'ordre alphabétique

lister un répertoire dans l'ordre alphabétique [RESOLU] - PHP - Programmation

Marsh Posté le 20-03-2008 à 10:43:14    

j'arrive sans problème à lister le contenu d'un répertoire, mais j'ai besoin que celui-ci soit dans l'ordre alphabétique
pour faciliter cette tache les fichiers portent un chiffre au début du style
1-fichierA
2-fichierB
3-fichierC
...
 
pour faire cela les noms des fichiers sont intégrés dans un tableau et je fais un tri du tableau avec NATSORT(), cela fonctionne, mais pas complétement car les fichiers portant le numéro 12, 14 et 30 ne sont pas à leur place !!!  :pt1cable:  
 
pourquoi eux ? je ne comprend absolument pas pourquoi
 
voici le script :
<?php
$dp = opendir($rep);  
 
  $i=0;  
  while ( $file = readdir($dp) )  
  {  
    // enleve les fichiers . et ..  
    if ($file != '.' && $file != '..')  
    {  
            // on passe les datas dans un tableau  
            $ListFiles[$i]=$file;  
            $i++;  
    }  
 }  
  closedir($dp);  
 
natsort($ListFiles);
 
  $i=0;  
  while ( $i < count($ListFiles))  
  {  
      echo $ListFiles[$i].'<br>';  
      $i++;  
  }
?>


Message édité par cbastien41 le 20-03-2008 à 14:31:50
Reply

Marsh Posté le 20-03-2008 à 10:43:14   

Reply

Marsh Posté le 20-03-2008 à 11:05:33    

montre nous un exemple de résultat
 
PS: tu pourrais réduire ton code en quelques lignes, avec glob, join...etc

Reply

Marsh Posté le 20-03-2008 à 11:46:06    

voir le résultat ci-dessous
le 7, 12, 14, 22 et le 30 ne sont pas à leur place !
 
1-MODE_d_EMPLOI_CIE.pdf
2-Bon_de_commande.pdf
3-RESERVATION_CENTER_PARCS.pdf
4-REMISES_SUR_CARTE_CIE.pdf
5-AFFICHES_INFOS_CLUB_Mars.pdf
6-LOCATION_MOBIL-HOME2.pdf
8-PROMO_ASTERIX.pdf
9-PROMO_ASTERIX_2.pdf
7-OFFRE_PRIVILEGE_remise_carte_Mars.pdf
10-PROMO_DISNEY_2JRS-2PARCS.pdf
11-PRINTEMPS_BOURGES- 2008.pdf
13-spectacles_Le_Mans_Mars08.pdf
15-ASTROLABE-Espace_G_SAND.pdf
16-24H_DU_MANS.pdf
16-24H_DU_MANS_MOTO.pdf
17-GPFrance_MOTO.pdf
12-Spectacles_Chateauroux_Mars08.pdf
14-Espace_Culturel_MALRAUX_Tours.pdf
18-FORMULE_1_Magny-Cours.pdf
19-BONS_ACHATS.pdf
20-BELAMBRA_Club.pdf
21-GERARD_PONS_VOYAGES.pdf
23-sejours_disney.pdf
22-FICHE_INSCRIPTION_VOYAGES_GERARD_PONS.pdf
26-AMBIANCE_SAFARI.pdf
27-BALADE_CHAMPETRE_EN_VOITURE_ANCIENNE.pdf
28-CUISINE_AVEC_CHEF_ET_RANDO_KAYAK.pdf
29-ESCAPADE_A_BARCELONE.pdf
31-RANDO_ANE_BATE_DANS_LE_MARAIS_POITEVIN.pdf
30-LA_SEVRE_TIPI_QUEMENT_NATURE.pdf
32-SEJOUR_A_BORD_D_UN_VIEUX_GREEMENT.pdf
33-SEJOUR_NOMADE.pdf
34-WEEK-END_DECOUVERTE_DU_NORD_BEAUJOLAIS_EN_BUGGY.pdf

Reply

Marsh Posté le 20-03-2008 à 11:54:21    

Je sais pas si c'est lié, mais les commentaires de la doc disent que ça ne fonctionne pas bien quand il y a des underscores...[:joce]


Message édité par skeye le 20-03-2008 à 11:54:27

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-03-2008 à 12:07:03    

ah bon !
mais il y a des underscores sur quasiment tous les fichiers, alors pourquoi çà ne fait que sur certains
de plus comme il y a des chiffres au début des noms, cela devrait s'ordonnait par ces chiffres

Reply

Marsh Posté le 20-03-2008 à 12:11:35    

cbastien41 a écrit :

ah bon !
mais il y a des underscores sur quasiment tous les fichiers, alors pourquoi çà ne fait que sur certains
de plus comme il y a des chiffres au début des noms, cela devrait s'ordonnait par ces chiffres


J'en sais rien moi, mais le tri naturel c'est un poil complexe hein.
Vu le format de tes trucs autant faire ta fonction de tri à la main en fonction des chiffres présents avant le tiret...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 20-03-2008 à 14:31:23    

bizaare comme bug, mais cela est lié à l'utilsation de chiffre en début de nom
 
j'ai résolu mon problème en utilisant  
usort($ListFiles,"strnatcmp" );
 
merci
++

Reply

Sujets relatifs:

Leave a Replay

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