За последние 24 часа нас посетили 30568 программистов и 1812 роботов. Сейчас ищут 840 программистов ...

Изменение переменных в зависимости от URL адреса страницы

Тема в разделе "PHP для новичков", создана пользователем MasterDmx, 17 авг 2014.

  1. MasterDmx

    MasterDmx Активный пользователь

    С нами с:
    17 авг 2014
    Сообщения:
    31
    Симпатии:
    0
    Доброго времени суток всем,

    возник вопрос такого характера: имеется огромное количество страниц с URL адресоми типа site.ru/avto-nissan.html либо site.ru/avto-mazda.html и так далее. То есть в адресе страниц будет меняться только слово идущее после avto- и до .html.

    Дизайн этих страниц будет один и тот же, НО у каждой страницы будет несколько элементов, которые меняются в зависимости от "марки машины" указанной в URL, т.е. являются динамическими элементами на этих страницах.

    Предполагается в местах этих динамических элементов вставить переменные, в которых и будет появляется информация которая необходима для каждой страницы (CMS сайта позволяет сделать это штатными средствами, название CMS - DLE 9.4).

    Пример кода HTML страницы:
    Код (Text):
    1. <div class="header">
    2.     <div class="wrapp">
    3.         <div class="logo">
    4.             <span class="ahref ah_main"></span>
    5.             <p>Ваш верный помощник в сфере выбора АВТО</p>
    6.         </div>
    7.         <div class="vo_head">
    8.                   {BLOCK1}
    9.         </div>
    10.         <div class="clr"></div>
    11.     </div>
    12. </div>
    Там где находится элемент {BLOCK1} будет вставляться контент из PHP файла. Т.е. на странице с адресом site.ru/avto-nissan.html в {BLOCK1} будет выведена одна информация, а на странице с адресом site.ru/avto-mazda.html будет выведена другая информация.

    В PHP файле я заранее создаю переменные с нужной информацией, что бы потом эта информация появлялась на HTML странице в {BLOCK1}.
    Дабы не запутаться, каждое имя переменной будет совпадать с названием "марки машины" в URL.

    Теперь на примере, что бы точно было понятно:
    У меня есть страница с URL адресом site.ru/avto-mazda.html, скрипт получает из URL слово "mazda" ищет переменную с этим названием, и выводит в {BLOCK1} контент из этой переменной.

    Как сделать вывод информации из переменной в {BLOCK1} на HTML странице я знаю.

    Но вот как сделать что бы название этой переменной бралось именно из URL адреса не знаю. К сожалению знания в PHP очень малы.

    Как я это примерно представляю:
    1) Создаются переменные типа $mazda, $nissan и так далее, которые заполняются нужной информацией.
    2) Скрипт получает адрес страницы из $_SERVER['HTTP_REFERER']
    3) Отбирает слово, которое получилось между site.ru/avto- и .html
    4) Если это слово совпадает с одной из переменных, которую я заранее создал в скрипте, то она приравнивается к переменной, которая отвечает за вывод информации в {BLOCK1} на HTML странице
    4) На HTML странице в месте {BLOCK1} выводится информация содержащаяся в переменной.

    Еще проще:
    Пользователь зашел на страницу site.ru/avto-mazda.html, скрипт отобрал слово mazda из URL, и вывел в месте {BLOCK1} информацию, которая находилась в переменной $mazda.

    Если бы была страница site.ru/avto-nissan.html, то соответственно в {BLOCK1} была бы подгружена информация из переменной $nissan.

    Постарался объяснить как можно подробнее. Заранее спасибо за помощь.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Изменение переменных в зависимости от URL адреса страниц

    Реферер это предыдущая страница. REQUEST_URI вам нужна. Можно даже через рерайт конфиг апача - все так делают.
     
  3. MasterDmx

    MasterDmx Активный пользователь

    С нами с:
    17 авг 2014
    Сообщения:
    31
    Симпатии:
    0
    Re: Изменение переменных в зависимости от URL адреса страниц

    Спасибо, а путем простого вырезания слова, которое получилось между site.ru/avto- и .html никак нельзя получить это слово из $_SERVER['REQUEST_URI'], не подскажете?
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Re: Изменение переменных в зависимости от URL адреса страниц

    str_replace
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Изменение переменных в зависимости от URL адреса страниц

    Substr() скорее
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Похоже тут вообще ему регулярки нужны.
    Раз тут уже такой расклад " avto-mazda " - получается, что нужно знать, что - это авто (не чайники), а якобы через " - " марка машины?
    Походу, что - то в этом духе:
    Код (PHP):
    1. $matches=array();
    2. $uri=basename('/avto-mazda.html');
    3. //$uri=basename($_SERVER['REQUEST_URI']);
    4. preg_match('/(.+)-(.+)\..+/',$uri,$matches);
    5. print_r($matches);
    Array
    (
    [0] => avto-mazda.html
    [1] => avto
    [2] => mazda
    )