13.07.2017 12:09:14 pm
Здравствуйте.
Как-то сам искал решение для создания нескольких страниц всего из одного файла, не прибегая к сложному коду, решение было довольно простым. Страницы разделяются условием.
А теперь в поисках этого решения некоторые спрашивают его у меня, появилась мысль написать об этом пост.
В общем, конкретно из одного файла создать несколько страниц не получится, так как на страницах будут присутствовать: картинки, будет прицеплен файл стиля (.css), если Ваш сайт на шаблонах, то туда ещё и шаблоны. Но если все эти детали опустить, то множество страниц получается из одного файла .php.
Для примера сделаем четыре страницы, это будет Главная страница, страница о SEO, про PHP и HTML. Ссылки на страницы у нас будут иметь такие адреса:
- index.php
- index.php?p=seo
- index.php?p=php
- index.php?p=html
Теперь сам файл код, который содержит в себе эти страницы и который мы поместим в файл index.php:
Вот и вся конструкция. За URL страницы отвечает, вот эта часть кода:
Вы запросто можете добавить еще несколько страниц, для этого перед:
добавляйте новый код:
Естественно вместо:
Ещё один вариант разбития файла на несколько страниц:
Код главной страницы начинается после default и находясь на главной странице, переменная p будет неопределенна, сообщение ошибки:
Что бы ошибка не выходила, делаем так: перед:
добавляем:
Либо подавляем ошибку знаком собаки (@) (Не рекомендую):
Как-то сам искал решение для создания нескольких страниц всего из одного файла, не прибегая к сложному коду, решение было довольно простым. Страницы разделяются условием.
А теперь в поисках этого решения некоторые спрашивают его у меня, появилась мысль написать об этом пост.
В общем, конкретно из одного файла создать несколько страниц не получится, так как на страницах будут присутствовать: картинки, будет прицеплен файл стиля (.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'])
- Жалоба