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>Bonne Soirée
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>"); } } ?>
Partager