Explorer un repertoire

Signaler
Messages postés
2
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
20 octobre 2007
-
Messages postés
2
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
20 octobre 2007
-
Bonjour
je souhaite afficher un repertoire et ses sous (sous) repertoires à la facon d'un arbre et pouvoir afficher les elements contenus dans les sous(sous) repertoires
(le principe ets le suivant : telechargement en ftp d'un reperoire et affichage en arbre sur le net)
apres avoir chercher pas mal
je suis parti de ce bout de code mais je bloque sur les sous repertoires (ils ont les meme attibuts que les reperoires premier niveau)

Merci pour toute piste
le fichier est lié a fichier css
"/* liste explorateur*/
.plus {font-family:monospace;border:outset #999999 1px;font-weight:bold;cursor:pointer;}
/* la classe plus defini le look du petit + à gauche du dossier */
.niveau {position:relative;width:250px;display:none;left:35px;top:-2px;text-align:left;margin-top:0}
/* la classe niveau définie la position des differents niveaux de repertoires, et sous repertoires ... */
.niveau li {list-style-image:url('../images/fleche.gif')}
/* tout simplement l'image de la liste des fichiers */

/* fin liste explo */
"

"<?php
/////documents.php
$stylecss="<style type=css>";
////liste
function explore($homedir) {
$dir = openDir($homedir);
$i=0;//nom de la div ou sous liste
$j=1;
$k=0;
while ($file = readDir($dir)) {
if (($file!=".")&&($file!="..")) {
// Est-ce que $file est un répertoire ?
// Pour le savoir il suffit d'appeler is_dir()
// mais attention n'oublions pas d'ajouter
// le chemin au nom du fichier
if (is_dir("$homedir/$file")) {

$a.="
$i"; ///css intégré en auto
if ($k==$i) $i++;
//oui ? on l'affiche
$a.="+ $i-$j
$file\n";
// oui ? alors explorons-le

$a.="$i-$j";
$a.=explore("$homedir/$file");
$i--;
$a.="\n";
$a.="
\n";
} else {
// sinon, c'est un fichier et on l'affiche
$cheminComplet = $homedir."/".$file;
// (mais sans le chemin $_SERVER["DOCUMENT_ROOT"]
$a.= "<li>".substr($cheminComplet, 1+strlen(documents)).
"</li>\n";
}
$j++;
}
$i++;
}


// C'est fini. On ferme !
closeDir($dir);
return $a;

}

//javascript
$texte.='
<script type="text/javascript">
var OnOff = new Array();
function nivoplus(id,nv){
var bloc=id+nv;
OnOff[bloc]=OnOff[bloc]==false?true:false;
document.getElementById(id+"n"+nv).innerHTML=OnOff[bloc]==false?"-":"+";
document.getElementById(bloc).style.display=OnOff[bloc]==false?"block":"none";
document.getElementById(id+"i"+nv).src=OnOff[bloc]==false?"images/dossier-o.png":"images/dossier-f.png";
}
</script>
';
// Définition du chemin à explorer
$home = 'documents';
// L'appel à la fonction
$texte.="\n
".explore($home);
///
$titre='Documents';

////
?>"

2 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
41
salut
j'ai pas pu tester ton code, pour le coriger (pas le temps)
mais j'ai lu quelques erreurs

    while ($file = readDir($dir)) {
ne listera pas un fichier qui a un "0" pour nom

sinon, on fait un arbre avec des balises et <li>, pas des div et span :)
Messages postés
2
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
20 octobre 2007

ya bien sur ul et li

le probleme tiens je crois a la recursivite