Шаг 4 - Менюшки и таблички, просто и удобно с explode()

Думаю, если Вы узнаете функцию explode() сейчас, то будете с самого начала иметь представление о достаточно простом и удобном способе создания различных меню, форм и табличек.

Функция explode() предназначена для разбиения строки на части и описывается как:

array explode ( string separator, string string [, int limit])

Куда в качестве аргументов передаются строка "сепаратор", т.е. разделитель separator и собственно строка string, которую надо разбить на мелкие кусочки. Необязательный параметр limit задает ограничение на количество разбиений, но мне вот уже за несколько лет программирования на PHP этот параметр ни разу не пригодился.

Создать меню простого корпоративного сайта можно следующим примером использования данной функции:

<?php

$menu_string =  "Новости~О нас~Продукция~Услуги~Контакты";

$menu = explode("~",$menu_string);

for ($i=0; $i < count($menu); $i++) {
	echo "<a href=index-",$i+1,".php>",$menu[$i],"</a><br>";
};

?>

Такой код создаст меню из пяти строк и каждая будет ссылаться на разный PHP файл:

Новости   = index-1.php
О нас     = index-2.php
Продукция = index-3.php
Услуги    = index-4.php
Контакты  = index-5.php

То есть, мы разбиваем строку $menu_string на части, где разделителем выступает символ тильды "~". Далее в цикле по всему получившемуся массиву, размер которого возвращает count($menu), выводим названия получившихся ссылок.

Если Вы хотите усложнить меню и задать вместе с названием меню еще и ссылку на файл, то надо просто ввести еще один сепаратор и чуть-чуть усложнить код:

<?php

$menu_string = "Новости=news.html~О нас~Продукция=goods.php~Услуги=service.php~Контакты=contacts.html";

$menu = explode("~",$menu_string);

for ($i=0; $i < count($menu); $i++) {
	$menu_1 = explode("=",$menu[$i]);
	if (2 == count($menu_1)) {
		echo "<a href=",$menu_1[1],">",$menu_1[0],"</a><br>";
	} else {
		echo "<a href=index-",$i+1,".php>",$menu_1[0],"</a><br>";
	};
};

?>

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

Новости   = news.html
О нас     = index-2.php
Продукция = goods.php
Услуги    = service.php
Контакты  = contacts.html

Если через разделитель "=" еще добавить какие-то параметры, то можно реализовать дополнительные свойства пунктов меню, например цвет букв или размер шрифта.

Главное достоинство этого метода в том, что можно упростить вывод похожих данных. В качестве примера еще можно привести задачу автоматического создания выпадающего меню формы, например списка месяцев. Раньше, ручками можно было бы написать так:

<select name=month>
<option value=1>Январь
<option value=2>Февраль
<option value=3>Март
<option value=4>Апрель
<option value=5>Май
<option value=6>Июнь
<option value=7>Июль
<option value=8>Август
<option value=9>Сентябрь
<option value=10>Октябрь
<option value=11>Ноябрь
<option value=12>Декабрь
</select>

Громоздкий и однообразный HTML код. Делать его вручную помоему очень лениво, при этом можно допустить какие-нибудь ошибки. На PHP с помощью explode() это реализуется гораздно проще:

<?php

$smonth = "Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь";

$m = explode(" ",$smonth);
echo "<select name=month>";
for ($i=0; $i < count($m); $i++) {
	echo "<option value=",$i+1,">",$m[$i];
};
echo "</select>";
?>

Таким же образом можно создавать и сложные таблицы, с большим количеством столбцов. Очень удобно, если разом требуется поменять оформление у всех столбцов, например размер шрифта или цвет фона. Это и есть понятие динамической страницы, а для упрощения этого процесса создан explode().


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей - 19.10.2005