switch ($_GET['page'])
{
case 'main': p_main(); break;
case 'about': p_about(); break;
/*.....*/
default: p_main(); break;
}
function p_main()
{
print 'Главная';
}
function p_about()
{
print 'О нас';
}
В других случаях можно подключить файлы:
switch ($_GET['id'])
{
case 'main': p_main(); break;
case 'example1': p_example1(); break;
case 'example2': p_example2(); break;
case 'example3': p_example3(); break;
// ...
default: p_main(); break;
}
function p_main() {include "pages/main.php";} // main.php Start content
function p_example1() {include "pages/example1.php";}
function p_example2() {include "pages/example2.php";}
function p_example3() {include "pages/example3.php";}
В итоге прямая ссылка может выглядить так <a href="index.php?id=example1">Страница example1</a>
Чтобы сделать красивые URL добавим в .htaccess привило:
RewriteEngine On
RewriteRule ^sigma$ /index.php?id=example1 [QSA,L]
В итоге прямая ссылка может выглядить так <a href="/example1">Страница example1</a>
function array_unique_key($array, $key) {
$tmp = $key_array = array();
$i = 0;
foreach($array as $val) {
if (!in_array($val[$key], $key_array)) {
$key_array[$i] = $val[$key];
$tmp[$i] = $val;
}
$i++;
}
return $tmp;
}
$array = array(
1 => array('title' => 'Название статьи', 'text' => 'Текст статьи'),
2 => array('title' => 'Название статьи', 'text' => 'Текст статьи'),
3 => array('title' => 'Название статьи', 'text' => 'Текст статьи'),
);
if (!empty($_GET['id']))
{
$id = (int) $_GET['id'];
echo '<h1><a href="index.php?id=' . $id . '">' . $array[$id]['title'] . '</a></h1>';
echo $array[$id]['text'];
}
else
{
foreach ($array as $key => $val)
{
echo '<p><a href="index.php?id=' . (int) $key . '">' . $val['title'] . '</a></p>';
}
}
Для примера сделаем четыре страницы, это будет главная страница, страница о SEO, про PHP и HTML. Ссылки на страницы у нас будут иметь такие адреса:
Теперь сам файл код, который содержит в себе эти страницы и который мы поместим в файл index.php:
if (isset($_GET['p']))
{
if ($_GET['p'] == 'seo')
{
#Тут контент/код страницы seo: index.php?p=seo
}
if ($_GET['p'] == 'php')
{
#Тут контент/код страницы php: index.php?p=php
}
if ($_GET['p'] == 'html')
{
#Тут контент/код страницы html: index.php?p=html
}
}
else
{
#Тут контент/код главной страницы
}
Вот и вся конструкция. За URL страницы отвечает, вот эта часть кода: if ($_GET['p'] == 'php'), а именно то что находится в кавычках, в данном случаи это php. Вы запросто можете добавить еще несколько страниц, для этого перед:
else
{
#Тут контент/код главной страницы
}
Добавляйте новый код:
if ($_GET['p'] == 'xxx')
{
#Тут контент/код страницы html: index.php?p=xxx
}
Ещё один вариант разбития файла на несколько страниц:
switch ($_GET['p'])
{
case 'seo':
#Тут контент/код страницы seo: index.php?p=seo
break;
case 'php':
#Тут контент/код страницы php: index.php?p=php
break;
case 'html':
#Тут контент/код страницы html: index.php?p=html
break;
default:
#Тут контент/код главной страницы
break;
}
Код главной страницы начинается после default и находясь на главной странице, переменная p
будет неопределенна, сообщение ошибки:
Notice: Undefined index: p in /......../...../.. ....php on line xxx
Что-бы ошибка не выходилась, делаем так, перед:
switch ($_GET['p'])
добавляем:
$_GET['p'] = isset($_GET['p']) ? $_GET['p'] : null;
Либо подавляем ошибку знаком собаки @
:
switch (@$_GET['p'])