Новый ответ после того, как ОП отредактировал свой вопрос
Из вашего отредактированного вопроса я понимаю, что вы хотите динамически заполнить элемент SelectBox
на веб-странице HTML файлами, найденными в определенном каталоге для option value
. Предполагается, что значения делятся на тире, подчеркивание и число, чтобы получить option name
, например,
Directory with Files > SelectBox Options
filename1.txt > value: filename1.txt, text: Filename 1
file_name2.txt > value: filename1.txt, text: File Name 2
file-name3.txt > value: filename1.txt, text: File Name 3
Исходя из кода, который я дал в моем другом ответе, вы могли бы достичь этого с помощью DirectoryIterator
, например:
$config = array();
$dir = new DirectoryIterator('.');
foreach($dir as $item) {
if($item->isFile()) {
$fileName = $item->getFilename();
// turn dashes and underscores to spaces
$longFileName = str_replace(array('-', '_'), ' ', $fileName);
// prefix numbers with space
$longFileName = preg_replace('/(\d+)/', ' $1', $fileName);
// add to array
$config[] = array('short' => $filename,
'long' => $longFilename);
}
}
Однако, поскольку имена файлов в каталоге уникальны, вы также можете использовать это как массив:
$config[$filename] => $longFilename;
при построении массива конфигурации. Короткое имя файла будет формировать ключ массива, а затем вы можете построить свой блок выбора следующим образом:
foreach($config as $short => $long)
{
printf( '<option value="%s">%s</option>' , $short, $long);
}
В качестве альтернативы, используйте Iterator, чтобы просто создать массив имен файлов и выполнить преобразование в длинные имена файлов при создании опций Selectbox, например, в цикле foreach
выше. Фактически, вы можете построить весь SelectBox прямо из итератора, вместо того, чтобы сначала создавать массив, например,
$dir = new DirectoryIterator('.');
foreach($dir as $item) {
if($item->isFile()) {
$fileName = $item->getFilename();
$longFileName = str_replace(array('-', '_'), ' ', $fileName);
$longFileName = preg_replace('/(\d+)/', ' $1', $fileName);
printf( '<option value="%s">%s</option>' , $fileName, $longFileName);
}
}
Надеюсь, это то, что вы ищете. Я настоятельно рекомендую взглянуть на главу под названием Справочник по языку в Руководстве по PHP , если у вас пока нет опыта в PHP или очень мало. Существует также бесплатная онлайн-книга на http://www.tuxradar.com/practicalphp