[КАК] PHP include в зависимости от страницы.

Тема в разделе "Как сделать...", создана пользователем alex-bot, 24 дек 2009.

Статус темы:
Закрыта.
  1. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    497
    Симпатии:
    144
    Помогите правильно написать php скриптец. Который бы в зависимости от открытой страницы инклудил бы файл. Т.е. ничего сложного нужно просто: если юзер перешел, попал или оказался на главной странице php открыл меню, на любой другой ничего показывать не надо, гуглил час, ничего толком нет...
    Попался вот такой скрипт
    Код:
    <?
    if($_SERVER['REQUEST_URI']="index.html") include("menu.txt");
    else echo "Для всех остальных страниц ";
    ?>
    Но он отображает меню на всех страницах...
     
  2. everest

    everest

    Регистр.:
    20 дек 2006
    Сообщения:
    197
    Симпатии:
    20
    Может вот как-то так?
    Код:
    <?
    if ($_SERVER['REQUEST_URI'][B]==[/B]"index.html")
     { include("menu.txt"); }
    else 
     { echo "Для всех остальных страниц"; }
    ?>
    
    Только наверное нужно написать
    $_SERVER['REQUEST_URI']=="/index.html"
     
    alex-bot нравится это.
  3. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    497
    Симпатии:
    144
    В исходнике было как ты написал, но не работало, ==\index , но без фигурных скобок... завтра попробую...
    PS Пролверил работает, но не так, пришлось вручную прописывать путь до папки т.е. на сайте есть папки и подпапки, в которых есть файлы index.html, т.е. это меню должно инклудится на все индекс паги... я так понимаю что нужно еще условие что если в адресе страницы есть слово index, то инклудим меню, иначе оставляем как есть. Наверно через регулярку...
     
  4. Yozik

    Yozik

    Регистр.:
    5 дек 2007
    Сообщения:
    239
    Симпатии:
    65
    Может я неправильно понял задачу, но что мешает инлюдить меню исключительно на индексной странице?
     
  5. ttx

    ttx

    Регистр.:
    15 мар 2007
    Сообщения:
    187
    Симпатии:
    36
    чтобы инклудило на всех index.html можно попробовать такое условие:


    if (preg_match('/(index\.html$|\/$)/is',$_SERVER['REQUEST_URI']) {
    include("menu.txt");
    } else {
    ...
    }

    тут

    index\.html$ -- значит что REQUEST_URI заканчивается на index.html
    \/$ -- значит что может быть просто указан / в конце, что подразумевает (при нужной настройке сервера) index.html
     
    alex-bot нравится это.
  6. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    497
    Симпатии:
    144
    Код:
    <?
    if (preg_match('/(index\.html$|\/$)/is',$_SERVER['REQUEST_URI']) 
    {include("images/menu.txt"); }
    else { echo "Для всех остальных страниц"; }
    ?>
    Parse error: parse error, unexpected '{' in z:\home\localhost\www\rrrr\index.html on line 129
    Вообще ничего нет...
    ЗЫ PHP 4.x.x может из-за этого?

    ЗЫЫ 2ttx Заработало, ты скобку забыл там дописать, а я пол часа мозг мучал... сверял с ПХП мануалом.
    Код:
    <?
    $url=$_SERVER['REQUEST_URI'];
    if (preg_match("/(index\.html$|\/$)/is", $url)) 
    { 
    include("images/menu.txt"); 
    }
    else { echo "Для всех остальных страниц"; }
    ?> 
    Вот так сделал
     
Статус темы:
Закрыта.