Bonsoir/ Bonjour a tous,

contexte : par défaut affiche le contenu du chemin D:/MovieSeries (dossier et fichier)et lorsque l'ont clique sur un dossier c'est son contenu qui est afficher.

Je me heurte actuellement a un soucis, le problème est que a partir du dossier par défaut(D:/MovieSeries) je peux aller dans ses dossiers enfants mais pas les petits-enfants.
Je ne vois pas comment bien récupérer dans une variable le chemin pour aller aux petits-enfants, auriez-vous des pistes a me conseiller ?

Merci par avance.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php 
 
    function ScanDirectory($pDir) {   
    // Parcours les fichiers et dossiers du dossier $pDir 
    // Retourne une liste (tableau $listDir) des fichiers(avec extension) et dossier présent
        if ($dir = opendir($pDir)) {
 
            $listDir = array();
 
            $i = 0; // paramètre tableau
            while($file = readdir($dir)) {
                // Parcours tous les fichiers et repertoire de $dir
                $i = $i + 1;
 
                if($file != '.' && $file != '..') {       
                    $listDir[$i] = $file;            
                }          
            }
        closedir($dir);  
        }
 
        return $listDir;
    }
 
    $defaultDir = 'D:/MovieSeries'; // Fichier par defaut
 
    if (empty($_GET['dir'])) {
    //Si GET['dir']est vide
        $list = ScanDirectory($defaultDir);
    } else {
        $dir = $_GET['dir'];
 
        if (empty($_GET['p'])) {
            $list = ScanDirectory($defaultDir.'/'.$dir);
        } else {
            $secondDir = $_GET['p'];
            $list = ScanDirectory($secondDir.'/'.$dir);
        }
    }
 
?>
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Title</title>
    <link rel="stylesheet" type="text/css" media="screen" href="css/default.css">
</head>
<body>
    <div class="container">
        <div class="content">
 
            <div class="subContent">
            <?php 
                foreach ($list as $value) {       
                    $a = new SplFileInfo($value);   
                    if (empty($a->getExtension())) { 
 
 
                        if(empty($dir)) {
                            echo ("<a href='index.php?dir=$value'><img src='img/folder.png'/>$value</a>");
                        }
                        else {
                            $getDir = $defaultDir.'/'.$dir;
                            echo ("<a href='index.php?dir=$value&p=$getDir'><img src='img/folder.png'/>$value</a>");
                        }
                    }             
                }
            ?>
            </div>
            <div class="subContent">
 
            <?php
                foreach ($list as $value) {
                    $a = new SplFileInfo($value);
                    if (!empty($a->getExtension())) { 
                        echo("$value <br>"); 
                    }
                }
            ?>
            </div>
 
        </div>
    </div>
</body>
</html>

Edit :

Après avoir un peu repenser a plat la façon dont il fallait que je m'y prenne j'ai finalement compris d’où venait mon problème, (problème de récursivité)

J'ai donc accès a partir de mon dossier par défaut D:/MovieSeries a tous les fichiers et dossiers de ses fils, petits fils et un si de suite.
Je vous remercie de votre aide votre forum regorge de pépite pouvant aider a comprendre la bonne façons dont il faut faire.

Voici donc ce que sa donne corrigé et la version sans commentaires ni code html.
Si vous auriez des suggestion pour comment mieux je suis également preneur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
<?php 
 
    function ScanDirectory($pDir, $pData) {   
    // Parcours les fichiers et dossiers du dossier $pDir 
    // Retourne une liste (tableau $listDir) des fichiers(avec extension) et dossier présent
    // $pDir = Dossier par defaut
        if (!empty($pData)) {
            //Si pData n'est pas vide (= cliquer sur un dossier pour passer son nom en GET['dir])
            //Alors ont ajoute le nom du dossier a $pDir pour l'ouvrir 
            $pDir = $pDir.'/'.$pData;
 
        }
        if ($dir = opendir($pDir)) {
 
            $listDir = array();
            $i = 0;
            while($file = readdir($dir)) {
                // Parcours tous le dossier $dir     
                if($file != '.' && $file != '..') {
                    if (!empty($pData)) {
                       //Si $pData n'est pas vide (cf ligne8)
                       //Alors ont ajoute le nom du dossier au nom du fichier
                        $listDir[$i] = $pData.'/'.$file;
 
                    } else {                                       
                        $listDir[$i] = $file;
                    }
                    $i = $i + 1;
 
                }          
            }
        closedir($dir);  
        }
 
        return $listDir;
    }
 
    $defaultDir = 'D:/MovieSeries'; // Dossier par defaut
 
    if (empty($_GET['dir']))  {
        $list = ScanDirectory($defaultDir, "");
    } else {
        $dir = $_GET['dir'];
        $list = ScanDirectory($defaultDir, $dir);
    }    
?>
 
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Cinématographie</title>
    <link rel="stylesheet" type="text/css" media="screen" href="css/default.css">
</head>
<body>
    <div class="container">
        <div class="content">
 
            <div class="subContent">
            <?php 
                foreach ($list as $value) {       
                    $SplFile = new SplFileInfo($value);   
                    if (empty($SplFile->getExtension())) { // pas d'extension == dossier
                    echo ("<a href='index.php?dir=$value'><img src='img/folder.png'/>$value</a>");
                    //var_dump($value);
 
                    }             
                }
            ?>
            </div>
            <div class="subContent">
 
            <?php
                foreach ($list as $value) {
                    $SplFile = new SplFileInfo($value);
                    if (!empty($SplFile->getExtension())) { // pas d'extension == dossier
                        echo("$value <br>"); 
                    }
                }
            ?>
            </div>
 
        </div>
    </div>
 
</body>
</html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php 
//$defaultDir || Répertoire par defaut
 
    function ScanDirectory($pDir, $pData) {   
 
        if (!empty($pData)) {
            $pDir = $pDir.'/'.$pData;
        }
 
        if ($dir = opendir($pDir)) {
            $listDir = array();
            $i = 0;
 
            while($file = readdir($dir)) {    
                if($file != '.' && $file != '..') {
                    if (!empty($pData)) {
                        $listDir[$i] = $pData.'/'.$file;                        
                    } else {                                       
                        $listDir[$i] = $file;
                    }
                    $i = $i + 1;                         
                }          
            }
        closedir($dir);  
        }
        return $listDir;
    }
 
    $defaultDir = 'D:/MovieSeries'; 
 
    if (empty($_GET['dir']))  {
        $list = ScanDirectory($defaultDir, "");
    } else {
        $dir = $_GET['dir'];
        $list = ScanDirectory($defaultDir, $dir);
    }    
 
    foreach ($list as $value) {       
        $SplFile = new SplFileInfo($value);   
        if (empty($SplFile->getExtension())) { 
            echo ("<a href='index.php?dir=$value'><img src='img/folder.png'/>$value</a>");
        }             
    }
 
    foreach ($list as $value) {
        $SplFile = new SplFileInfo($value);
        if (!empty($SplFile->getExtension())) {
            echo("$value <br>"); 
        }
    }
?>
Bonne Soirée