У меня есть массив, в котором перечислены папки в каталоге. До сих пор я жестко кодировал имена папок, но вместо этого я думал, что мог бы легко создать сценарий для разбора каталога и просто назначить каждое имя папки массиву. Таким образом, я мог легко добавлять папки, и мне не нужно было снова трогать скрипт ...
Массив объектов создает выпадающее меню списка параметров, в котором перечислены все папки ...
В настоящее время массив закодирован как ...
"options" => array ("folder one" => "folder1", "folder two" => "folder2")),
Но я пытаюсь сделать его динамическим в зависимости от того, какие папки он найдет в данном каталоге.
Вот сценарий, который я использую для анализа каталога и возврата в массив данных foldernames. Работает нормально.
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 );
}
И вот мой первый пример получения этих папок в массив ...
$mydir = getDirectory('/images/');
"options" => array($mydir)),
Но очевидно, что это не работает правильно, так как он неправильно подает массив, я просто получаю строку в списке опций ... Я уверен, что это простой шаг преобразования, который я пропускаю ...