Как получить список стран для HTML формы. Часть 2

Как получить список стран для HTML формы

От автора: приветствую вас, друзья. В данной статье мы с вами продолжим тему того, как получить список стран для HTML формы. Напоминаю, в первой части статьи мы с вами фактически реализовали данную задачу. Однако, есть небольшой нюанс — в значении тега option вместо страны указан код телефона, т.е. вариант получился не совсем гибким. Попробуем усовершенствовать его. Продолжим?

Исходные файлы текущей статьи вы можете скачать по ссылке.

Напомню, в предыдущем уроке мы формально решили поставленную задачу, получив выпадающий список стран:

При этом код списка выглядит следующим образом:

Итак, как же нам сделать исходный вариант чуть более гибким? Ответ очевиден — необходимо иметь под рукой именно массив стран, а не готовый код HTML, в котором эти страны уже использованы. Таким образом, имея массив стран, мы можем гибко его использовать: формировать нужную нам разметку, выводить страны не в списке формы select, а, скажем, в ненумерованном списке ul. Да, в общем, мы вольны делать что угодно в этом случае. У нас есть два варианта решения проблемы:

выбирать все страны вручную, формируя из них массив

попробовать автоматизировать процесс, доверив формирование списка стран программе

Конечно же, мы выберем второй вариант, ведь человек по своей природе ленив, а лень, как известно, — двигатель прогресса :)

Потратим несколько минут времени на автоматизацию процесса, чтобы в итоге получить необходимый результат. При этом неважно насколько велик список, пусть там будут хоть тысячи значений — все они будут получены фактически мгновенно.
Для решения задачи проще всего воспользоваться возможностями регулярных выражений. Нам понадобится составить шаблон регулярного выражения, который выберет содержимое текстовых узлов тега option. К слову, если вы не знакомы с регулярными выражениями, тогда обязательно посмотрите наш курс по регулярным выражениям.

Скопируем код всего списка и воспользуемся вот этим сервисом. Вставим скопированный код и начнем составлять регулярное выражение.

Шаблон регулярного выражения для данных элементов списка будет следующим:

/<[^>]+>([^<]+)<\/option>/ig

Результат именно тот, который нам нужен:

В качестве строки замены мы просто вставили следующее — «$1″, — т.е. обрамили запомненные названия стран кавычками и поставили после них запятую. Остается скопировать эти страны и использовать их в нашей программе в качестве массива, по которому мы и пройдемся в цикле:

$countries = ["Россия", "Абхазия", "Австралия", ...];
<select class="form-control" name="country" id="country">
<?php foreach($countries as $country): ?>
	<option value="<?=$country?>"><?=$country?></option>
<?php endforeach; ?>
</select>

В результате мы получим нужный нам список стран в форме, но при этом мы не ограничены в выборе разметки и можем использовать массив стран с абсолютно любым кодом.

На этом мы завершим данную статью. Если вас интересует тема валидации форм и работы с ними, рекомендую посмотреть этот урок. На этом все. Удачи!

Хотите изучить регулярные выражения на PHP?

Прямо сейчас посмотрите 12-ти часовой курс по регулярным выражениям на PHP!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree