Bonsoir à tous,
Voilà, j'essaye d'isoler les fichier index.html htm et php de mes sous-dossier.
Il y'a quelques chose qui m'échappe après plusieurs essais et lecture de la doc.
Voici mon code :
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
|
<?php
$i = 0;
$currentDir = dir('.');
$files = array();
while($name = $currentDir->read()) {
echo($name."<br>");
if($name != "." && $name != ".." && is_dir($name)) {
$files[] = $name;
}
}
$currentDir->close();
sort($files);
foreach($files as $subFolder) {
$subFolder = dir("./".$subFolder);
while($index = $subFolder->read()) {
if(is_file($index) && ($index == "index.html" || $index == "index.htm" || $index == "index.php")) {
echo("index : ".$files[$i]."/".$index."<br>");
}
}
$subFolder->close();
$i++;
}
$subFolder->close();
?> |
Voilà, déjà j'ai 4 index.php qui s'affichent alors que j'ai 5 dossiers dans la variable $files[].
Est-ce la bonne méthode ?
Merci à vous.
EDIT : après un nouvel essai, il rentre bien dans tous les dossiers de la variable $files[] mais il ne trouve que les index.php, pas les autres... C'est le is_file() qui pose problème...
EDIT2 :
Est-ce que quelqu'un peut me dire la différence entre ça : (cas 1)
if(is_file($index) && ($index == "index.html" || $index == "index.htm" || $index == "index.php"))
et ça : (cas 2)
if(is_file($index) && $index == "index.html" || $index == "index.htm" || $index == "index.php")
De plus, j'ai créé, pour le test, deux dossiers. Dans l'un j'ai créé dans le terminal avec la commande touch un fichier index.htm et dans l'autre un index.html. Dans le cas1 je ne trouve aucun des deux fichiers (mais tous les index.php sont là), avec le cas2 je trouve le index.htm mais pas le html.
C'est incompréhensible, les deux fichiers sont vides, j'ai essayé aussi avec quelques caractères à l'intérieur, et avec le terminal j'ai exactement les même infos (droits, poids, etc.)
Merci pour vos lumières.
Partager