@loed

Как вывести фрагмент текста в зависимости от url?

Нашел рабочий код:
<?php
//Для уменьшения объема кода задаем пепеменной $rurl определение текущей страницы, 
//т.е. того, что идет после http://sitename.dn/вот_эту_часть

$rurl = $_SERVER["REQUEST_URI"];

//Задаем условие: если текущий урл совпадает с адресом из переменной $rurl, т.е. текущей страницей,
//то выводим текст из переменной $pagename
if (($rurl=="/") || ($rurl=="/index.php" )){$pagename="Главная страница";}
if (($rurl=="/register.php" ) || ($rurl=="/reg" )){$pagename="Регистрация";}
if (($rurl=="/stats.php" ) || ($rurl=="/stat" )){$pagename="Статистика";}
if (($rurl=="/members.php" ) || ($rurl=="/mem")){$pagename="Аккаунт";}

if ($rurl=="/403.php"){$pagename="Ошибка 403";}
if ($rurl=="/404.php"){$pagename="Ошибка 404 ";}

//Выводим текст на странице
echo"$pagename";

/*
 Задаем файлу любое имя, например pagename.php и вставляем на сайт через инклуд следующей конструкцией:
 <? include('pagename.php'); ?> 
*/
?>
Не мне нужно еще чтобы еще выводился текст «по умолчанию» то есть на всех других урл не соответсвующих условиям?
  • Вопрос задан
  • 770 просмотров
Пригласить эксперта
Ответы на вопрос 1
xEpozZ
@xEpozZ
Веб-разработчик
$rurl = $_SERVER["REQUEST_URI"];

switch($rurl){
    case "/":
    case "/index.php":
        $pageName = "Главная страница.";
    break;
    case "/register.php":
    case "/reg":
        $pageName = "Страница регистрации.";
    break;
    /* Others cases */
    default:
        // Если не нашлось никакого соответствия, то это будет страница ошибки: 404
        $pageName = "Ошибка 404. Страница не найдена.";
}

//Выводим текст на странице
echo 'Название страницы: ' . $pageName;

Для обучения этого хватит. В дальнейшем такой код у вас вряд ли где примут и одобрят.
Для навигации по страницам есть Router'ы, а для выполнения каких-то действий "если попал на нужную страницу", существуют Controller'ы, для отображения информации есть View'хи.

p.s. Учитесь, развивайтесь. В этом нет ничего зазорного.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы