PHP REQUEST_URI – разный текст в зависимости от адреса страницы

Есть неприятная особенность при разбивке сайта на include() — из-за особенностей дизайна приходится переносить элементы шаблона на страницу с текстом. Например, DIV-блок, в который внедрен тег H1 и его никак не получается переделать.

Такой подход приведет к тому, что в будущем, когда мы захотим переписать шаблон, нам придется лазить по всем файлам с текстом и сносить этот кусок кода. Так вот, есть решение – PHP

Скрипт определяет текущий УРЛ и подставляет текст из переменной по условиям ниже:

<?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'); ?> 
*/
?>

В комментариях к скрипту описана вся последовательность действий. Если вы очень далеки от PHP то достаточно просто включить \”логику\” и через две минуты скрипт станет понятен любому! Так же вы можете скачать готовый пример!

В DLE эту функцию выполняет один из тегов встроенного метаязыка

Похожие записи

Как и где лучше всего изучать программирование на языке PHP
PHP — это серверный язык программирования со своими плюсами и минусами. Его давно хоронят, но он прочно закрепился в своей...
Где найти полезные материалы для изучения языков программирования?
В современном мире практически каждый человек может ощутить на себе серьезное влияние технологий. Технические средства начинают внедряться практически во все...
Laravel — стоит ли связываться с PHP фреймворком в 2020?
Laravel — масштабный PHP фреймворк, который отлично подойдет для повышения навыков разработки на данном языке и будет хорошей альтернативой не...
IDE — как найти идеальную для себя редактор кода
Каждый, кто работает с PHP кодом в определенный момент осознает, что привычные реакторы, для написания HTML / CSS / JS...
Автоматизация мелких продаж, CMS или самописная платформа?
В свое время баловался переделкой движков и плагинов финансовых проектов (CAP, MLM) и была проблема с автоматизацией продаж. Точнее, с...

18 комментариев на «“PHP REQUEST_URI – разный текст в зависимости от адреса страницы”»

  1. Скажите пожалуйста, как извлечь имя файла из $_SERVER["REQUEST_URI"] и вставить в условие IF.

  2. Цитата: kzmko
    Скажите пожалуйста, как извлечь имя файла из $_SERVER["REQUEST_URI"] и вставить в условие IF.

    Что за имя файла, дайте пример. Данная запись определяет текущую страницу сайта, осоно не привязываясь к домену, т.е. в случае с данной страницей

    441-php-raznyy-tekst-v-zavisimosti-ot-adresa-stranicy.html

  3. Спасибо за участие. Меня интересует php-сценарий при котором передается какой-либо параметр. Условно адрес может иметь такой вид: http://site.ru/article.php?id=9.

  4. Цитата: kzmko
    Спасибо за участие. Меня интересует php-сценарий при котором передается какой-либо параметр. Условно адрес может иметь такой вид: http://site.ru/article.php?id=9.

    
    if($_GET['id'] == 9){
         // код, если условие выполнилось
    }
    

    если нужно проверить сразу два ключа, например:
    http://site.ru/article.php?id=9&world=sometext

    
    if($_GET['id'] == 9 && $_GET['world'] == 'sometext' ){
         // код, если условие выполнилось
    }
    

    && – и
    || – или

    GET – получает передаваемый параметр в адресе.

    так формируются короткие новости, да и вообще, практически все:

    логика (на самом деле все гораздо сложнее) для коротких новостей дле:

    
    if($_GET['category'] == 'mycategory'){
        foreach($category as $cat){
          // выводить shortstory.tpl
       }
    }
    
  5. а что нужно добавить что бы выводился текст “по умолчанию” то есть на всех других урл не соответсвующих условиям?

    • Проверить сейчас нет возможности, попробуйте объявить переменную
      $pagepame = ‘Текст по умолчанию’;
      до начала условий, вот сюда:

      $rurl = $_SERVER["REQUEST_URI"];
      
      $pagepame = 'Текст по умолчанию';
      
      if(//some code){}

      • да. спасибо, работает… но только с двойными кавычками

      • странно, кавычки особой роли не играют и больше нужны для экранирования противоположных кавычек. Я двойные вообще не использую т.к. шифт зажимать нужно 🙂
        А в тексте кавычек нет?

  6. Здравствуйте! У меня редкая CMS – “OJS”. Можно задать через админку метатеги всем страницам, кроме главной. А чтобы задать метатеги главной странице – нужно делать это через редактирование кода в файле шаблона. Но если просто вставить метатеги в код файла, то метатеги вставятся и на всех других страницах. А это не нужно, т.к. через админку можно вставить две вариации – для русского языка и для английского. Так вот, подскажите, пожалуйста, как можно сделать, чтобы шла проверка адреса страницы, и если адрес совпадает с адресом главной страницы, чтобы вставлялся метатег (а на других страницах он выводиться не должен, да это и не нужно, т.к. там уже есть метатеги).
    Спасибо!

    • За определение адреса страницы на языке PHP отвечает конструкция
      $_SERVER[“REQUEST_URI”];

      Нужно написать следующее условие (см. пример в статье):

      if($_SERVER[“REQUEST_URI”] == ‘/’){
      // тут ваш код для вставки ключевых слов
      }
      слэш означает, что после имени сайта ничего нет.

      • Спасибо большое, но, к сожалению, пока не сработало. Наверно, я что-то не так делаю. Я вставил в тег следующий код:
        <?php
        if($_SERVER["REQUEST_URI"] == ‘/’){

        }
        ?>
        Подскажите, пожалуйста, так надо было делать или нет?
        Спасибо!

      • Ой, между { и } у меня был вставлен метатег (он удалился, пришлось убрать открывающую и закрывающую скобки тега):

      • Метатег снова удалился (после нажатия на кнопку “отправить”). Извините, что я расплодил бессмысленные комментарии.

      • Сделайте пример кода, как вы добавляете метатеги сейчас и как нужно сделать для главной. Сюда публикуйте через <pre>code </pre>

        
        
      • А еще проще — скиньте пример кода главной куда нибудь по указанным контактам. Там, похоже, нужно правильно расставить кавычки со скобками и все заработает

  7. Спасибо за ответ! На остальных страницах сайта можно вставлять через админку (т.е. просто есть поле для метатегов), в коде копаться не нужно. Но на главную страницу это не распространяется, на главную можно только через дописывания tpl-файла. Я бы хотел, чтобы на главной странице сайта был тег (вставил через pre, надеюсь что сейчас не удалится).
    Спасибо!

Добавить комментарий