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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] newbie, lecture recursive d'un dossier et tri

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] newbie, lecture recursive d'un dossier et tri

n°1070308
smea
alias peshane SW-1088-1675-051
Posté le 03-05-2005 à 13:11:44  profilanswer
 

bonjour,
j'ai trouver plein d'infos sur comment regler mon problème mais étant donné que je suis une vraie bille en php, j'en appelle humblement à votre bonne âme  :sweat:  
 
j'ai trouver un script qui me fait une mise en page qui me conviens et tout et tout, je n'ai qu'un soucis: le listage moisi des repertoires avec la fonction readdir()  :fou:  
bon alors j'ai fait des recherches et j'ai fini par comprendre que si je voulais un tri alphabétique 'il me falais d'abord insérer les nom de dossiers dans un tableau puis le trier avec la fonction sort().
A la bonne heure  :D
 
voici le script en question:
 

Code :
  1. <?php
  2. function liste($dir){
  3. if($_GET[v]){ $v=$_GET[v]; }
  4. $dossier=opendir($dir);
  5. while($fichier=readdir($dossier)){
  6. $berk=array('.', '..');
  7. if(!in_array($fichier,$berk)){
  8. $lien="$dir/$fichier";
  9. $nbrT=count(split("/",$lien))-2;
  10. if($v==$lien){ $here='<span class="here">';$hereEnd='</span>'; } else{ $here='<span class="hereOn">';$hereEnd='</span>'; }
  11. $space="";
  12. for($i=1; $i<$nbrT; $i++){ $space.='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'; }
  13. if(is_dir($dir."/".$fichier)){
  14. echo $space.'<img src="/tutoriel/rep.jpg" border="0"> '.$here.'<b> <a href="index.php?v='.$lien.'">'.ucfirst($fichier).'</a> </b>'.$hereEnd.'<br />';
  15. liste("$dir/$fichier" );
  16. }
  17. }
  18. }
  19. }
  20. function listeFichier($dir){
  21. if($_GET[v]){ $v=$_GET[v]; }
  22. $dossier=opendir($dir);
  23. while($fichier=readdir($dossier)){
  24. $berk=array('.', '..');
  25. if(!in_array($fichier,$berk)){
  26. $lien="$dir/$fichier";
  27. if(!is_dir($dir."/".$fichier)){
  28. echo ' '.ucfirst($fichier).' <br />';
  29. }
  30. }
  31. }
  32. }
  33. $v=htmlentities($_GET[v]);
  34. $situation=str_replace("./test/","",$v); $situation=str_replace("/"," > ",$situation);
  35. echo '<table width="100%"><tr valign="top"><td width="200">';
  36. liste("./test" );
  37. echo '</td><td>
  38. <b>Les fichiers</b> ['.$situation.']<br /><br />';
  39. if($v){ listeFichier($v); }else{ echo 'Cliquez sur un répertoire'; }
  40. echo '</td></tr></table>';
  41. ?>


 
comme précisé dans le titre du topic, je suis newbie en php  :o  
en lisant le script j'avais cru comprendre que $fichier était un tableau mais un sort($fichier) n'a vraiment rien de concluant malheureusement.
Tout ce que je souhaiterais, c'est un bon coup de main pour m'aider à modifier ce script afin qu'il affiche dossiers et fichiers par ordre alphabétique croissant.
 
durant mes recherches sur le net, j'ai appris l'existance d'une fonction scandir() mais c'est pour php5 :o
 
merci d'avance pour votre aide :jap:


Message édité par smea le 03-05-2005 à 13:13:02
mood
Publicité
Posté le 03-05-2005 à 13:11:44  profilanswer
 

n°1070403
bryanmalk
Posté le 03-05-2005 à 14:06:34  profilanswer
 

Salut,
Il te suffit de faire :
$tab_dir=array{};
$tab_file=array{};
 
if(is_dir($dir."/".$fichier))
   array_push($tab_dir,$fichier)
else
   array_push($tab_file,$fichier)
 
sort($tab_dir);sort($tab_file);
 
array_merge($tab_dir,$tab_file);
 
Puis ensuite tu affiche le contenu de ton tableau avec un foreach.
 
Voilà. J'espère que j'ai bien répondu à ta question.

n°1830502
fig72000
Posté le 22-12-2008 à 16:53:15  profilanswer
 

petite correction :  
 

Code :
  1. $tab_dir=array();
  2. $tab_file=array();
  3. $dossier=opendir($dir);
  4. while($fichier=readdir($dossier)){
  5. if(is_dir($dir."/".$fichier)){
  6.    array_push($tab_dir,$fichier);
  7. }
  8. else
  9. {
  10.    array_push($tab_file,$fichier);
  11. }
  12. }
  13. sort($tab_dir);sort($tab_file);
  14. $final=array();
  15. $final=array_merge($tab_dir,$tab_file);
  16. foreach($final as $k)
  17. {
  18. echo $k."<br />";
  19. }


 
Bon courage


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

  [PHP] newbie, lecture recursive d'un dossier et tri

 

Sujets relatifs
Suppresion de dossier[javascript et PHP]Pb avec saut de ligne[résolu]
Script PHP pour construire un fichier htpasswdProbleme de lecture d'arborescence
[WiP PHP/CSS] 3 Mars: Problème de marge CSSConfigurer PHP pour phpMySQL [Résolu]
Option dans lecture de fichier[PHP / J.S] Champ texte dans un formulaire et caractères spéciaux
Quelle classe PHP pour du PDF : formulaire d'inscriptioninclue en PHP
Plus de sujets relatifs à : [PHP] newbie, lecture recursive d'un dossier et tri


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