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

Messages postés
22
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
13 octobre 2008
- - 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 

Votre réponse

14 réponses

Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
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
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
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
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
Oups, il fallait lire
if(is_dir($file))

et non

if($is_dir($file))
Commenter la réponse de huberdine
Messages postés
22
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
13 octobre 2008
0
Merci
pourrais tu développer ou donner un exemple stp ?


désolé je suis encore débutant en php.
Commenter la réponse de jibtothenight
Messages postés
22
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
13 octobre 2008
0
Merci
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
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
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
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
>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
Messages postés
22
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
13 octobre 2008
0
Merci
ou rentre tu le chemin du dossier de départ ? 
Commenter la réponse de jibtothenight
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
>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
Messages postés
22
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
13 octobre 2008
0
Merci
Merci beaucoup Huberdine, ça marche NIKEL !!!

et un grand merci à Codessources.com
Commenter la réponse de jibtothenight
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
0
Merci
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
Messages postés
22
Date d'inscription
jeudi 13 mars 2008
Dernière intervention
13 octobre 2008
0
Merci
Je veux bien mais comment fait-on ?
Commenter la réponse de jibtothenight
0
Merci
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
Messages postés
158
Date d'inscription
samedi 8 février 2003
Dernière intervention
17 juin 2010
-1
Merci
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.