Page 1 sur 1

explorateur dossiers seulement

Posté : 11 mars 2008, 19:17
par youp2000
bonjour à tous !

Je n'y connais absolument rien en php, et j'aurais besoin d'un bout de code simple, une sorte d'explorateur, qui affiche l'arborescence d'un dossier mais sans afficher les fichiers, uniquement les dossiers / sous-dossiers ; et quand un dossier contient un index.html, celui-ci est executé.

En fait, c'est pour faire des dossiers photos : sur la gauche la liste des répertoires, et quand on choisi un repertoire, ca lance son index.html sur la droite.

Impossible de trouver ça sur le net... Ce serait vraiment sympa de me montrer, en m'expliquant un peu le code que je puisse l'adapter etc !

J'ai bien réussi a modifier un script d'arborescence pour ne voir que les dossiers (et même s'il en ressort un code bien compliqué pour ce qu'il fait, ça fonctionne)

mais je voudrais maintenant qu'il execute automatiquement le fichier "index" quand il y en a un dans le dossier ouvert - si possible d'ailleurs dans une autre "frame" - et ça je ne sais pas faire

Merci à tous !

Posté : 11 mars 2008, 21:52
par Ryle
Et tu veux un devis détaillé où bien si on te donne directement un prix HT pour notre travail cela te suffirait ? :P

Plus sérieusement, on est tous bénévoles ici... donc t'aider à apprendre et comprendre php, y a pas de problème.. t'aider à débuger ton code lorsque tu as des erreurs, on fait aussi... te donner des tuyaux pour optimiser tes scripts ou ta façon de développer, c'est même avec plaisir.. il n'y a qu'un truc qu'on ne fait pas, c'est le travail à ta place ;)

Donc lance toi, essaye, prend ton temps, découvre, commet des erreurs, pose nous des questions, montre nous ton code et on sera là pour t'aider :) Tu apprendras et retiendras beaucoup mieux ainsi.

Et pour te donner une piste si ton script est vraiment trop lourd, commence par regarder la documentation de la fonction readdir(). Il y a des explications, des exemples et des commentaires d'utilisateurs pour exploiter au mieux les fonctions :)

Posté : 12 mars 2008, 14:06
par Invité
j'aimerai savoir au moins quelles fonctions je dois utiliser !
comme je l'ai dis j'ai déjà un bout de code, modifié par un ami pour qu'il execute l'index.html mais ça ne fonctionne pas : (mes respects à son auteur)
(à l'origine, le sript liste dossiers et fichiers, et on peut naviguer dans l'arborescence)

Code : Tout sélectionner

$depart="./photos"; // ----- Affiche arborescence ----- Auteur : fgauharou ------------- // require("./fonctions.php"); // ------------------------------ Initialisation des variables ----------------------------------------------- // if(!empty($chemin)) $chemin = stripslashes($chemin); else $chemin = $depart; // ----------------------------------- Sécurité navigation -------------------------------------------------- // $chemintotal = $chemin; // ------------------------------- Récupération des fichiers et répertoires dans tableau-- // $handle = @opendir($chemintotal); $file = @readdir($handle); // repertoire . $file = @readdir($handle); // repertoire .. $repind = 0; $fileind = 0; $w = 0; while ($file = @readdir($handle)) { if(is_dir("$chemintotal/$file")) { $reptab[$repind]["nom"] = $file; $reptab[$repind]["taille"] = filesize("$chemintotal/$file"); $repind++; } else { if ($file == "index.php" || $file == "index.html") { $w = 1; $index = $file; } } } @closedir($handle); // ============================= Affichage =================================== // ?> <! ----------------------- Affichage du chemin ------------------><style type="text/css"> <!-- body { background-color: #000000; } --> </style> <table width=50% border="0" cellspacing="0" cellpadding="0" BGCOLOR="#b0bace"> <tr> <td><b><? echo " Chemin : ";?></b><?$CheminDecompose = DecomposerChemin($chemin);echo $CheminDecompose; // -- Affiche le dossier courant -- // ?> </td> </tr> </table> <TABLE WIDTH="650" BORDER="0" CELLPADDING="0" CELLSPACING="1" nowrap> <TR> <TD background="/images/menu.jpg" width=35>&nbsp;</TD> <TD background="/images/menu.jpg" ALIGN="center"><b><? echo "Nom"; ?></b></TD> </TR> <TR><TD COLSPAN="10"><HR NOSHADE></TD></TR> <? // ------ Si on clique sur dossier parent --------------- // if($chemin != ".") { $cheminretour = ModifChemin($chemin); $cheminretour = rawurlencode($cheminretour); ?> <TR> <TD width=35 ALIGN="center"><A HREF="./dir.php?chemin=<? echo $cheminretour; ?>"><IMG SRC="./images/back.gif" BORDER="0"></A></TD> <TD ALIGN="left" ><A HREF="./dir.php?chemin=<? echo $cheminretour; ?>">..</A></TD> </TR> <? } // -------------------------------------- Affichage des répertoires --------------------------------------- // if ($w == 0) { for($i=0;$i<$repind;$i++) { $nomrep = $reptab[$i]["nom"]; $cheminrep = rawurlencode($chemin."/".$nomrep); $IndiceImage = $i; $pair = $i%2; ?> <TR> <TD <? if ($pair==1) {echo "";?>BGCOLOR="#b0bace" bordercolor="#b0bace"<?} else {echo "";?>BGCOLOR="#d8dde7" bordercolor="#d8dde7"<?}?> ALIGN="center"><A HREF="./dir.php?chemin=<? echo $cheminrep; ?>"><IMG SRC="./images/dir.gif" border="0"></A></TD> <TD <? if ($pair==1) {echo "";?>BGCOLOR="#b0bace" bordercolor="#b0bace"<?} else {echo "";?>BGCOLOR="#d8dde7" bordercolor="#d8dde7"<?}?> ALIGN="left" ><font color="#000099"><font face=" Verdana,Arial, Helvetica, sans-serif" size="2"><? echo $nomrep; ?></TD> <TD <? if ($pair==1) {echo "";?>BGCOLOR="#b0bace" bordercolor="#b0bace"<?} else {echo "";?>BGCOLOR="#d8dde7" bordercolor="#d8dde7"<?}?> ALIGN="left" ><font color="#000099"><font face=" Verdana,Arial, Helvetica, sans-serif" size="2"></TD> </TR> <? } } if ($w == 1) { $path = $chemin."/".$file; include($path); } // ------ fin du tableau ---- // ?> <TR><TD COLSPAN="10"><HR NOSHADE></TD></TR> </TABLE><BR> </BODY> </HTML>

et voilà ce que ça donne (parfait sauf l'execution de l'index.html - j'en ai mis un dans chaque dossier 01, 02, et 03)

Posté : 12 mars 2008, 16:08
par Ryle
Pour les fonctions à utiliser :

opendir() : permet a php d'ouvrir un dossier pour accéder à son contenu
readdir() : retourne le prochain élément contenu dans un dossier
is_dir() : permet de savoir si un élément est un dossier
is_file() : permet de savoir si un élément est un fichier

Donc en gros, il te faut ouvrir ton dossier, lire chaque élément qu'il contient, vérifier s'il s'agit d'un dossier (et dans ce cas l'afficher dans la partie navigation) ou si c'est un fichier (dans quel cas l'afficher côté contenu)

Posté : 12 mars 2008, 19:37
par youp2000
Merci !

et pour l'execution du fichier "index.php" ou "index.html" ?
A votre avis pourquoi ça ne fonctionne pas sur le code que j'ai poster ?

Posté : 14 mars 2008, 01:38
par Invité
Je ne vois toujours pas pourquoi ça marche pas sur le code posté plus haut... ça m'agace ! Aidez moi s'il vous plait ! :)

Posté : 14 mars 2008, 01:52
par Hywan
Et tu veux un devis détaillé où bien si on te donne directement un prix HT pour notre travail cela te suffirait ? :P

Plus sérieusement, on est tous bénévoles ici... donc t'aider à apprendre et comprendre php, y a pas de problème.. t'aider à débuger ton code lorsque tu as des erreurs, on fait aussi... te donner des tuyaux pour optimiser tes scripts ou ta façon de développer, c'est même avec plaisir.. il n'y a qu'un truc qu'on ne fait pas, c'est le travail à ta place ;)
Remarque, on pourrait penser à accepter les chèques et les virements sur nos comptes dans les îles, non :lol: ?

Posté : 14 mars 2008, 15:19
par Aureusms
Je ne vois toujours pas pourquoi ça marche pas sur le code posté plus haut... ça m'agace ! Aidez moi s'il vous plait ! :)
En koi cela ne marche pas ?