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

php request uri - 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 эту функцию выполняет один из тегов встроенного метаязыка

Читайте также

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

IDE — как найти идеальную для себя редактор кода
Каждый, кто работает с PHP кодом в определенный момент осознает, что привычные реакторы, для написания HTML / CSS / JS...
Автоматизация мелких продаж, CMS или самописная платформа?
В свое время баловался переделкой движков и плагинов финансовых проектов (CAP, MLM) и была проблема с автоматизацией продаж. Точнее, с...
PHP 7.2 — добавлен новый алгоритм хэширования, удален Mcrypt
В PHP 7.2 добавлен алгоритм хэширования нового поколения, который вскоре может вытеснить Bcrypt, а также удалена библиотека шифрования Mcrypt и...
PHP — ротатор объемных кодов (переосмысление)
Изучив PHP до уровня между middle и junior и перечитывая старые статьи порой становится стыдно за тот бред, который когда-то...
PHP — делаем проверку наличия HTTPS или редирект
Задача: Не всегда получается настроить .htaccess для принудительного редиректа на протокол HTTPS и как-то необходимо выкручиваться! Если мы знаем, где находится код, отвечающий за роутинг...

Комментарии

Бесполезно писать спамные сообщения. Все комментарии проверяются;
Можно оставлять ссылки (через <a href), если они несут полезную информацию или дополняют статью;

  1. @kzmko пишет:
    12.11.2016 в 21:50

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

  2. @devarts пишет:
    13.11.2016 в 15:25

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

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

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

  3. @kzmko пишет:
    13.11.2016 в 18:05

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

  4. @devarts пишет:
    15.11.2016 в 21:18

    Цитата: 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. @kzmko пишет:
    16.11.2016 в 04:45

    Спасибо за совет, попробую то, что вы предлагаете.

  6. @terwixonse пишет:
    12.05.2019 в 08:55

    Help. I am looking for guide

  7. @Олег пишет:
    26.06.2019 в 11:04

    а что нужно добавить что бы выводился текст «по умолчанию» то есть на всех других урл не соответсвующих условиям?

    • @devarts пишет:
      26.06.2019 в 14:16

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

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

      • @Олег пишет:
        26.06.2019 в 17:29

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

      • @devarts пишет:
        27.06.2019 в 05:16

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

  8. @Саша пишет:
    19.10.2019 в 00:37

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

    • @devarts пишет:
      19.10.2019 в 00:49

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

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

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

      • @Саша пишет:
        19.10.2019 в 01:45

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

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

      • @Саша пишет:
        19.10.2019 в 01:48

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

      • @Саша пишет:
        19.10.2019 в 01:50

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

      • @devarts пишет:
        19.10.2019 в 02:20

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

        
        
      • @devarts пишет:
        19.10.2019 в 02:30

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

  9. @Саша пишет:
    19.10.2019 в 02:35

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *