PHP Afficher le contenu d'un dossier et de ses sous-dossiers [Résolu]

jibtothenight 22 Messages postés jeudi 13 mars 2008Date d'inscription 13 octobre 2008 Dernière intervention - 17 sept. 2008 à 16:55 - Dernière réponse :  wytlyt
- 31 mars 2013 à 16:48
Bonjour,
 avec ce code j'arrive à afficher le contenu de mon dossier :
<?php
$dir = opendir('intranet/image_hd/');
while($file = readdir($dir)) {
echo "$file
";
}
closedir($dir);
?>
 mais les sous-dossiers s'affichent comme des fichiers .
Je  voudrais afficher l'arborescence de ces sous-dossiers si c'est possible

Si quelqu'un peut m'aider SVP ?

Merci d'avance
Afficher la suite 

14 réponses

Répondre au sujet
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 17 sept. 2008 à 18:03
0
Utile
Salut,
essaye la fonction is_dir :
<?php
$dir = opendir('intranet/image_hd/');
while($file = readdir($dir)) {
if(is_dir($file))
echo "Sous dossier : ".$file."
";
else
echo "[intranet/image_hd/".$file." ".$file."]
";
}
closedir($dir);
?>
Commenter la réponse de huberdine
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 17 sept. 2008 à 18:05
0
Utile
Visiblement, Chrome a du mal avec codesources
Je reposte mon message sous FF :

<?php
$dir = opendir('intranet/image_hd/');
while($file = readdir($dir)) {
if($is_dir($file))
echo "Sous répertoire : ".$file."
";
else
echo "".$file."' target='_blank'>".$file."
";
}
closedir($dir);
?>
Commenter la réponse de huberdine
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 17 sept. 2008 à 18:07
0
Utile
Oups, il fallait lire
if(is_dir($file))

et non

if($is_dir($file))
Commenter la réponse de huberdine
jibtothenight 22 Messages postés jeudi 13 mars 2008Date d'inscription 13 octobre 2008 Dernière intervention - 17 sept. 2008 à 18:08
0
Utile
pourrais tu développer ou donner un exemple stp ?


désolé je suis encore débutant en php.
Commenter la réponse de jibtothenight
jibtothenight 22 Messages postés jeudi 13 mars 2008Date d'inscription 13 octobre 2008 Dernière intervention - 17 sept. 2008 à 18:20
0
Utile
je viens d'essayer le code.
le serveur me dit qu'il y a un problème de string sur la ligne :  du while

si tu as une idée ?
Commenter la réponse de jibtothenight
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 17 sept. 2008 à 18:26
0
Utile
tu peux faire un peu de récursivité pour afficher l'arborescence.
La récursivité consiste à appeler une fonction qui va s'appeler elle même.
Ex ,pour parcourir des fichiers :

<?php
function parcours_dossier($chemin_dossier)
{
// On ouvre le dossier à lire
$dossier = opendir($chemin_dossier);
// On parcours l'ensemble des éléments présent dans le dossier
while($element = readdir($dossier))
{
// On ne s'occupe ni du répertoire courant ni du répertoire parent
if(($element != ".") && ($element != ".."))
{
// Si le fichier est un dossier
if(file_exists($chemin_dossier."/".$element) && is_dir($chemin_dossier."/".$element))
{
echo "dossier : ".$chemin_dossier."/".$element."
";
// On parcours les sous dossiers (c'est ici qu'intervient la récursivité car la fonction s'appelle elle-même)
parcours_dossier($chemin_dossier."/".$element);
}
else
{
echo "fichier : ".$chemin_dossier."/".$element."
";
}
}
}
closedir($dossier);
}
// On appelle la fonction de parcours des dossiers
parcours_dossier(".");
?>
Commenter la réponse de huberdine
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 17 sept. 2008 à 18:29
0
Utile
>je viens d'essayer le code.


>le serveur me dit qu'il y a un problème de string sur la ligne :  du while



>si tu as une idée ?



Regarde mon 3° message ...
Commenter la réponse de huberdine
jibtothenight 22 Messages postés jeudi 13 mars 2008Date d'inscription 13 octobre 2008 Dernière intervention - 17 sept. 2008 à 18:32
0
Utile
ou rentre tu le chemin du dossier de départ ? 
Commenter la réponse de jibtothenight
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 17 sept. 2008 à 18:37
0
Utile
>ou rentre tu le chemin du dossier de départ ?

à la dernière ligne du script :
parcours_dossier(".");

. signifie le répertoire courant (c'est à dire celui dans lequel se trouve le fichier php appelé)
Il suffit de remplacer le . par le chemin du répertoire que tu veux parcourir
Commenter la réponse de huberdine
jibtothenight 22 Messages postés jeudi 13 mars 2008Date d'inscription 13 octobre 2008 Dernière intervention - 18 sept. 2008 à 10:15
0
Utile
Merci beaucoup Huberdine, ça marche NIKEL !!!

et un grand merci à Codessources.com
Commenter la réponse de jibtothenight
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 18 sept. 2008 à 11:16
0
Utile
Je t'en prie.
N'oublies pas de marquer le sujet comme résolu ;-)
Bon courage pour la suite.
Commenter la réponse de huberdine
jibtothenight 22 Messages postés jeudi 13 mars 2008Date d'inscription 13 octobre 2008 Dernière intervention - 18 sept. 2008 à 14:06
0
Utile
Je veux bien mais comment fait-on ?
Commenter la réponse de jibtothenight
0
Utile
bonjour,

j'utilise ce script que j'ai un peu adapté à mes besoins pour faire une galerie de photos, j'aimerai seulement que les sous-dossiers s'affichent par ordre alphabétique inversé, mais je ne vois pas où placer le rsort();

si quelqu'un peut m'aider, je tourne en rond
Commenter la réponse de wytlyt
huberdine 158 Messages postés samedi 8 février 2003Date d'inscription 17 juin 2010 Dernière intervention - 18 sept. 2008 à 14:15
-1
Utile
Tu cliques sur le bouton 'Réponse acceptée' à droite de la (ou les) réponse(s) qui te semble(nt) pertinente(s).
Cela marquera automatiquement le thread comme résolu.
Commenter la réponse de huberdine

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.