Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2361 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  trier le contenu de mon répertoire en fonction du type de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

trier le contenu de mon répertoire en fonction du type de fichier

n°1529706
vichenzo
Posté le 16-03-2007 à 20:08:46  profilanswer
 

Salut à tous,
 
j'ai une fonction qui affiche le contenu de mon répertoire dans l'ordre alphabétique.
J'aimerais moi qu'elle m'affiche le contenu de façon alphabétique mais en mettant d'abord les répertoires...(comme sous windows quoi... :D )
 
Merci de votre aide

mood
Publicité
Posté le 16-03-2007 à 20:08:46  profilanswer
 

n°1529751
sielfried
Posté le 16-03-2007 à 22:07:46  profilanswer
 
n°1529889
vichenzo
Posté le 17-03-2007 à 12:54:21  profilanswer
 

non je vois pas :(

n°1529927
sielfried
Posté le 17-03-2007 à 14:50:19  profilanswer
 

Bin dans ta boucle tu stockes les noms des répertoires et des fichiers dans deux tableaux à part, pis t'affiches dans l'ordre que tu veux. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1529981
vichenzo
Posté le 17-03-2007 à 19:58:19  profilanswer
 

ok je vais essayer...merci

n°1529997
Protohd
Posté le 17-03-2007 à 21:12:36  profilanswer
 

Salut,  
 
Tu trouveras ci-dessous un début de réponse, très et trop simpliste mais assez détaillée.
 
Mais tout n'est pas fait  :)  
 
Bonne chance pour la suite.
 

Code :
  1. <?PHP
  2. function vichenzo_listing ($directory)
  3. {
  4. // En PHP5 tu as la fonction scandir qui te retourne un tableau
  5. $files = scandir($directory);
  6. // SI PHP4 vas faire un tour sur le lien ci-dessous
  7. // http://fr3.php.net/manual/fr/function.scandir.php
  8. // Décommente les deux lignes ci dessous pour voir la tête du tableau
  9. //print_r($files);
  10. //Echo '<br><hr><br>';
  11. // On initialise la variable $html qui vas nous servir pour retourner le résultat
  12. $html ='';
  13. // Avec la fonction "is_dir" on test pour savoir si c'est un dossier
  14. foreach ($files as $value)
  15. {
  16.    $test = is_dir ($directory.$value);
  17.    if ($test == TRUE)
  18.    {
  19.  $html .= $value.'<br>';
  20.    }
  21. }
  22. // Avec la fonction "is_file' on test pour savoir si c'est un fichier
  23. foreach ($files as $value)
  24. {
  25.    $test = is_file ($directory.$value);
  26.    if ($test == TRUE)
  27.    {
  28.  $html .= $value.'<br>';
  29.    }
  30. }
  31. return $html;
  32. }
  33. // Remplace 'MON_REPERTOIRE' par le répertoire à scanner
  34. $directory    = 'MON_REPERTOIRE';
  35. // On éxecute la fonction
  36. $html = vichenzo_listing ($directory);
  37. //On affiche le résultat
  38. Echo $html;
  39. ?>


Message édité par Protohd le 17-03-2007 à 21:13:33
n°1530362
vichenzo
Posté le 19-03-2007 à 10:23:59  profilanswer
 

Merci beaucoup Protohd pour ton aide...je vais étudier ça ce soir...:D
 
Merci

n°1530739
vichenzo
Posté le 19-03-2007 à 19:22:21  profilanswer
 

J'ai regardé comment je pourrais faire mais d'après ce que je comprend, il faudrait que je mette tous les résultats dans un tableau pour ensuite utiliser la fonction sort()
Mais le probleme c'est que j'affiche tout dans un tableau Html sans utiliser de array
Voilà en gros la structure de mon code...j'ai retire tout ce qui était html pour que ca soit plus clair...ca veut dire qu'il faut que je recommence tout  :sweat: ? ou il y a t-il une autre solution??

Code :
  1. function ExploreDir($dir)
  2. {
  3. $rep=opendir($dir);
  4. chdir($dir);
  5. if ($handle = opendir('.'))
  6. {
  7. while ($fichier=readdir($rep)) 
  8. {
  9.  if ($fichier != "." && $fichier != ".." )
  10.   {
  11.   if (is_dir($fichier))
  12.           {
  13.    echo "<a href=index.php?page=affich_rep&dir=".$dir.">".$fichier."</a><br>";
  14.           }
  15.           else
  16.           {
  17.    echo "<a href=".$dir."/".$fichier.">".$fichier."</a>";
  18.    }
  19.   }
  20. }
  21. }
  22. closedir($handle);
  23. }


 
PS :  je pense que vous avez devinez que mon niveau php n'est pas très élevé... :whistle:


Message édité par vichenzo le 19-03-2007 à 19:23:04
n°1530830
Protohd
Posté le 19-03-2007 à 22:31:01  profilanswer
 

Bonsoir,  
 
Dans ton code, il y'a peut-être un problème dans ta boucle WHILE.
 
Dans un premier temps, fais une boucle ne retenant que les répertoires.
Ensuite, refais une autre boucle pour ne retenir que ce qui n'est pas des répertoires (regardes mon exemple).
 
Ainsi, dans la première boucle ton premier "Echo" ne vas afficher que les répertoires.
Ensuite, dans la seconde boucle "Echo" ne vas afficher que les fichiers.
 
Tu as fait des "Echo" dans une fonction, pourquoi pas mais je pense que ce n'est pas très propre.
Remplaces "Echo" par "$html .=" ( ".=" pour l'aditionner au précédent).
Sans oublier de faire un "return $html;" à la fin de ta fonction pour qu'il te renvoie la valeur.
Valeur que tu vas récupérer en faisant : $html = ExploreDir ("mon_repertoire" );
Valeur que tu vas afficher en faisant "Echo $html;"
 
Je n'ai pas tout vérifié, mais là tu devrais vraiment être sur la voie pour résoudre ton problème.

n°1530857
vichenzo
Posté le 20-03-2007 à 01:12:31  profilanswer
 

MErci Protohd je vais essayé ça rapidement (mais hélas pas avant jeudi :()
 
Merci


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  trier le contenu de mon répertoire en fonction du type de fichier

 

Sujets relatifs
Java Applet - Télécharger/Uploader un fichierSupprimer des caracteres dans un fichier texte
Rechercher fichier puis affichage d´une partie du contenuCompiler un fichier avec Scite
Améliorer la vitesse du fonction donnant un nombre aléatoireredirection dans un fichier
Convertir un fichier Excel en PDFContenu prenant toute la hauteur
creation automatique d'un fichier 
Plus de sujets relatifs à : trier le contenu de mon répertoire en fonction du type de fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR