Добавить class = "active" на активную страницу с помощью PHP

Динамический заголовок, изменение класса CSS в Active USING PHP (dirrectory)

Я хочу, чтобы класс <li> менялся под активной директивой … теперь, каждый справочник показывает мне, как это сделать, когда ваша страница равна ему, но я хочу изменить <li> зависимости от того, какой dirrectory im on

например:

если я скажу им
http://example.com/RESOURCES/code/opensource ,
или
http://example.com/RESOURCES/images/clipart
я хочу, чтобы «РЕСУРСЫ» ^^ <li> были «class =» активными », в то время как остальные отображают« class = »noactive» '

или если im on
http://example.com/tutorials/css/flawless-dropdown-menu
Я хочу, чтобы «учебные пособия» <li> были «class =» активными », в то время как остальные« class = »noactive» '


Настройка URL:

Это мой пример того, как отображаются мои URL-адреса …

 http://example.com/tutorials/css/flawless-dropdown-menu 

^^ Этот URL является страницей учебника …. в каталоге «tutorials», чем в каталоге категории «CSS», чем заголовок страницы (все эти каталоги не являются реальными и переписываются из .htaccess) [ не имеет значения]


Настройка навигации:

 <ul id="mainnav"> <li class="noactive"><a href="/">Home</a></li> <li class="active"><a href="/tutorials/">Tutorials</a></li> <li class="noactive"><a href="/resources/">Resources</a></li> <li class="noactive"><a href="/library/">Library</a></li> <li class="noactive"><a href="/our-projects/">Our Projects</a></li> <li class="noactive"><a href="/community/">Community</a></li> </ul> 

Выяснил ОТВЕТ … Я уже думал об этом.

HTML

 <ul id="mainnav"> <li class="<?php if ($first_part=="") {echo "active"; } else {echo "noactive";}?>"><a href="#">Home</a></li> <li class="<?php if ($first_part=="tutorials") {echo "active"; } else {echo "noactive";}?>"><a href="#">Tutorials</a></li> <li class="<?php if ($first_part=="resources") {echo "active"; } else {echo "noactive";}?>"><a href="#">Resources</a></li> <li class="<?php if ($first_part=="library") {echo "active"; } else {echo "noactive";}?>"><a href="#">Library</a></li> <li class="<?php if ($first_part=="our-projects") {echo "active"; } else {echo "noactive";}?>"><a href="#">Our Projects</a></li> <li class="<?php if ($first_part=="community") {echo "active"; } else {echo "noactive";}?>"><a href="#">Community</a></li> </ul> 

PHP

 <?php $directoryURI = $_SERVER['REQUEST_URI']; $path = parse_url($directoryURI, PHP_URL_PATH); $components = explode('/', $path); $first_part = $components[1]; ?> 

header.php

 $activePage = basename($_SERVER['PHP_SELF'], ".php"); 

nav.php

 <ul> <li class="<?= ($activePage == 'index') ? 'active':''; ?>"><a href="/index.php">Home</a></li> <li class="<?= ($activePage == 'tutorials') ? 'active':''; ?>"><a href="/tutorials.php">Tutorials</a></li> ... 

Через PHP вы можете попробовать –

 <?php // gets the current URI, remove the left / and then everything after the / on the right $directory = explode('/',ltrim($_SERVER['REQUEST_URI'],'/')); // loop through each directory, check against the known directories, and add class $directories = array("index", "tutorials","resources","library","our-projects","community"); // set home as 'index', but can be changed based of the home uri foreach ($directories as $folder){ $active[$folder] = ($directory[0] == $folder)? "active":"noactive"; } ?> <ul> <li class="<?php echo $active['index']?>"><a href="/">Home</a></li> <li class="<?php echo $active['tutorials']?>"><a href="/tutorials/">Tutorials</a></li> <li class="<?php echo $active['resources']?>"><a href="/resources/">Resources</a></li> <li class="<?php echo $active['library']?>"><a href="/library/">Library</a></li> <li class="<?php echo $active['our-projects']?>"><a href="/our-projects/">Our Projects</a></li> <li class="<?php echo $active['community']?>"><a href="/community/">Community</a></li> </ul> 

Может быть, это поможет вам:

 $(document).ready(function() { var parts = document.URL.split("/"); // [http:, empty, your domain, firstfolder] var firstFolder = parts[3]; $("#mainnav li").attr("class", "noactive"); $("#mainnav a[href='/" + firstFolder + "/']").parent().attr("class", "active"); }); 

Скорее всего, это связано с jQuery, но это работает:

 $url='http://example.com/tutorials/css/flawless-dropdown-menu';//pass the current url here instead of a static string. $segments = explode ("/",$url); $menuItems=array('Tutorials','Resources', 'Library', 'Our-Projects','Community'); $menu=array(); foreach ($menuItems as $menuItem) { if($segments[3]==strtolower($menuItem)){ $menu[]=('<li class="active"><a href="/'.strtolower($menuItem).'/">'.str_replace("-"," ",$menuItem).'</a></li>'); } else { $menu[]=('<li class="no-active"><a href="/'.strtolower($menuItem).'/">'.str_replace("-"," ",$menuItem).'</a></li>'); } } foreach ($menu as $item) { echo $item.'<br />'; } 

с активным классом bootstrap li

 <ul> <li class="<?php if($_GET['link']=='home') echo 'active'; else echo ''; ?>"> <a href="?link=home">Home</a> </li> <li class="<?php if($_GET['link']=='home') echo 'active'; else echo ''; ?>"> <a href="?link=contactus">Contact Us</a> </li> </ul> 
 <?php $request_uri= $_SERVER['REQUEST_URI'];?> <ul> <li class="<?php if((strpos($request_uri,"index.html")!==false) || $request_uri=="" || $request_uri=="/"){echo "selected";}?>"><a href="/index.html">Home</a></li> <li class="<?php if((strpos($request_uri,"service")!==false)){echo "selected";}?>"><a href="/services.html">Services</a> </li> <li class="<?php if((strpos($request_uri,"product")!==false)){echo "selected";}?>"><a href="/products.html">Products</a></li> <li class="<?php if((strpos($request_uri,"blog")!==false)){echo "selected";}?>"><a href="/blog.html">Blog</a></li> <li class="<?php if((strpos($request_uri,"question")!==false)){echo "selected";}?>"><a href="/question-answers.html">Ques & Ans</a></li> <li class="<?php if((strpos($request_uri,"career")!==false)){echo "selected";}?>"><a href="/career.html">Career</a></li> <li class="<?php if((strpos($request_uri,"about-us")!==false)){echo "selected";}?>"><a href="/about-us.html">About</a></li> </ul>