Explorer un repertoire

thejoker31 Messages postés 2 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 20 octobre 2007 - 18 oct. 2007 à 18:59
thejoker31 Messages postés 2 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 20 octobre 2007 - 20 oct. 2007 à 10:44
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

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 oct. 2007 à 21:40
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 :)
0
thejoker31 Messages postés 2 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 20 octobre 2007
20 oct. 2007 à 10:44
ya bien sur ul et li

le probleme tiens je crois a la recursivite
0
Rejoignez-nous