Регистрация
DANFA Сближает людей!

Создание нескольких страниц из одного файла PHP

Здравствуйте.
Как-то сам искал решение для создания нескольких страниц всего из одного файла, не прибегая к сложному коду, решение было довольно простым. Страницы разделяются условием.
А теперь в поисках этого решения некоторые спрашивают его у меня, появилась мысль написать об этом пост.
В общем, конкретно из одного файла создать несколько страниц не получится, так как на страницах будут присутствовать: картинки, будет прицеплен файл стиля (.css), если Ваш сайт на шаблонах, то туда ещё и шаблоны. Но если все эти детали опустить, то множество страниц получается из одного файла .php.
Для примера сделаем четыре страницы, это будет Главная страница, страница о SEO, про PHP и HTML. Ссылки на страницы у нас будут иметь такие адреса:
- index.php
- index.php?p=seo
- index.php?p=php
- index.php?p=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
	}

Естественно вместо: 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'])
Работа на DANFA: Фриланс.

Часовой пояс: GMT +6. Текущее время 10:30 pm.