以下PHP函数将add class =“active”添加到当前页面打开。echo class“active” - 如果class =“”已经存在或不存在。
<?php #add class .active to current page
$directoryURL = $_SERVER['REQUEST_URI'];
$path = parse_url($directoryURL, PHP_URL_PATH);
$components = explode('/', $path);
$currentPage = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($components));
if ($currentPage == "") {
$currentPage = "index";
}
function href($url) {
global $currentPage;
$path = explode('/', $url);
$page = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($path));
echo 'href="' . $url . '"';
if ($page == $currentPage) {
echo 'active';
}
}
?>
这是菜单项:
<li><a class="icon-glass"<?php href('index.php');?>>Home</a></li>
<li><a <?php href('about.php');?>>About</a></li>
的问题是,该功能只与没有类= “菜单项作品” 宣称,即:
<li><a <?php href('about.php');?>>About</a></li>
而且它不适用于这一个:
<li><a class="icon-glass"<?php href('index.php');?>>Home</a></li>
我相信这是值得做的这部分脚本:
if ($page == $currentPage) {
echo 'class="active"';
}
问题:我如何把它做什么,现在呢,这是增加class=""
时尚未添加的话,也只需在已经存在的类中添加.active
位(如果找到)?
我试图只使用echo 'active';
,但没有奏效。
尝试'return',而不是'echo' – Albzi
不,没没有工作。 – Leo
更改为返回后,您是否已将php代码更改为''中的'echo href('index.php')'。 – krishna