J'ai un tableau qui répertorie les dossiers dans un répertoire. Jusqu'à présent, j'ai codé en dur les noms de dossier, mais plutôt que de le faire, j'ai pensé que je pourrais facilement créer un script pour analyser le répertoire et juste assigner chaque nom de dossier au tableau. De cette façon, je pourrais facilement ajouter des dossiers et ne pas avoir à toucher à nouveau le script ...PHP remplissant dynamiquement un tableau
Le tableau de l'objet crée une liste des options menu déroulant répertoriant chaque dossier ...
Actuellement, le tableau est Hardcoded comme si ...
"Options" => array (dossier "one" => "folder1", dossier "deux" => "dossier2")),
Mais je suis en train de le rendre dynamique basée sur tous les dossiers qu'il trouve dans le répertoire donné.
Voici le script que j'utilise pour analyser le répertoire et renvoyer les noms de domaine au tableau. Ça fonctionne bien.
function getDirectory($path = '.', $level = 0)
{
// Directories to ignore when listing output.
$ignore = array('.', '..');
// Open the directory to the handle $dh
$dh = @opendir($path);
// Loop through the directory
while(false !== ($file = readdir($dh)))
{
// Check that this file is not to be ignored
if(!in_array($file, $ignore))
{
// Show directories only
if(is_dir("$path/$file"))
{
// Re-call this same function but on a new directory.
// this is what makes function recursive.
//echo $file." => ".$file. ", ";
// need to return the folders in the form expected by the array. Probably could just add the items directly to the array?
$mydir2=$mydir2.'"'.$file.'" => "'.$file. '", ';
getDirectory("$path/$file", ($level+1));
}
}
}
return $mydir2;
// Close the directory handle
closedir($dh);
}
Et voici ma première prise à obtenir ces dossiers dans le tableau ...
$mydir = getDirectory('/images/');
"options" => array($mydir)),
Mais évidemment, cela ne fonctionne pas correctement depuis son pas alimenter correctement le tableau que je viens d'obtenir une chaîne dans ma liste d'options ... je suis sûr que c'est une étape de conversion facile qui me manque ...
@Scott, j'ai une méthode beaucoup plus courte, mais cela dépend de la profondeur maximale. Est-ce que votre structure arborescente atteindra n'importe quelle profondeur, ou est-ce que 3 ou 4 niveaux seront aussi profonds? –
Salut Doug, ce sera seulement un niveau profond. –