Arbo php code pas top

Résolu/Fermé
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 - Modifié par magicshark le 27/08/2011 à 17:27
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 - 29 août 2011 à 14:08
Bonjours,

j'essaye de faire une arborescence en php mais tout les codes trouvé démarre d'un chemin prédéfini or j'aimerai partir depuis mes lecteurs, et partitions j'ai donc fait ça mais je trouve que c'est très moche...
function ScanVol() 
 { 
  $vol=1; 
  $disk=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"); 
  foreach($disk as $Directory) 
  { 
    if(@opendir($Directory.":/")) 
    { 
     $tabVol[$vol]=$Directory.":/"; 
     $vol++; 
     @closedir($Directory.":/"); 
    } 
  } 
  return($tabVol); 
 } 

pourquoi faire simple quand on peut faire compliquer j'aime bien aider mais pas
faire vos recherche alors avant de nous poser la question, demander lui=>google
A voir également:

6 réponses

magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
27 août 2011 à 17:27
up
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
28 août 2011 à 14:03
re up
0
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
29 août 2011 à 11:23
Bonjour,

Il faut utiliser une fonction récursive:

function getDirectory( $path = '.', $level = 0 ){

    $ignore = array( 'cgi-bin', '.', '..' );
    // Directories to ignore when listing output. Many hosts
    // will deny PHP access to the cgi-bin.

    $dh = @opendir( $path );
    // Open the directory to the handle $dh
    
    while( false !== ( $file = readdir( $dh ) ) ){
    // Loop through the directory
    
        if( !in_array( $file, $ignore ) ){
        // Check that this file is not to be ignored
            
            $spaces = str_repeat( ' ', ( $level * 4 ) );
            // Just to add spacing to the list, to better
            // show the directory tree.
            
            if( is_dir( "$path/$file" ) ){
            // Its a directory, so we need to keep reading down...
            
                echo "<strong>$spaces $file</strong><br />";
                getDirectory( "$path/$file", ($level+1) );
                // Re-call this same function but on a new directory.
                // this is what makes function recursive.
            
            } else {
            
                echo "$spaces $file<br />";
                // Just print out the filename
            
            }
        
        }
    
    }
    
    closedir( $dh );
    // Close the directory handle

}



A+
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
29 août 2011 à 14:01
j'comprend pas bien l'anglais mais je vois pas du tout l'utilité de la récursivité là je souhaite juste affiché mais lecteurs et partitions pas ce qu'ils contiennent, ça c'est le js qui s'en charge très bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mpmp93 Messages postés 6652 Date d'inscription mercredi 13 avril 2011 Statut Membre Dernière intervention 28 septembre 2015 1 339
Modifié par mpmp93 le 29/08/2011 à 14:06
Bonjour,

CITE: "je vois pas du tout l'utilité de la récursivité"....

C'est pourtant la base d'une programmation efficace pour l'analyse des arborescences dont on ne connait pas la hiérarchie...

https://fr.wikipedia.org/wiki/Algorithme_r%C3%A9cursif

On s'en sert en informatique justement pour le cas que vous citez.

Sinon, vos lecteurs, c'est A: C: D: etc... sous Windows....

Mais ce ne sont pas ces noms là sous Linux ou MacOS.

LE programme est en PHP, donc destiné à tourner sur un serveur, il y a fort à parier que ledit serveur soit à 99,99999% sous Linux/Unix.

Sinon lister vos lecteurs locaux, je vois vraiment pas l'intérêt, même avec la récursivité.

A+
0
magicshark Messages postés 399 Date d'inscription mardi 27 juillet 2010 Statut Membre Dernière intervention 6 mai 2014 13
29 août 2011 à 14:08
et bah en faite si je suis débile je sais mais je veux lister mais locaux en faite je veux essayer de faire une appli portable qui pourrai tourner sur ma clef avec MOVAMP et donc a 'louverture je testerai si je suis sous linux ou pas ... Puis pour Linux je suis peut etre a nouveau tres tres débile mais le plus simple pour partir du début c'est juste de partir de la racine // alors que windows les racine sont nos lecteurs
0