[英]echo class “active” - if class=“” is already exists or not.
以下PHP函数将class =“ active”添加到当前打开的页面。
<?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>
问题是,该函数仅适用于未声明class =“”的菜单项,即:
<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';
但这没用。
使用现有的PHP代码尝试这种格式
<li><a class="icon-glass <?php href('index.php');?>">Home</a></li>
<li><a class="<?php href('about.php');?>">About</a></li>
意味着您必须在类属性的双引号“”内回显活动的类。
将功能href替换为
function href($url) {
global $currentPage;
$path = explode('/', $url);
$page = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($path));
if ($page == $currentPage) {
echo ' active " ';
}else{
echo ' " ';
}
echo ' href="' . $url . '" ';
}
而这个html
<li><a class="icon-glass"<?php href('index.php');?>>Home</a></li>
<li><a <?php href('about.php');?>>About</a></li>
与
<li><a class="icon-glass <?php href('index.php');?>>Home</a></li>
<li><a class="<?php href('about.php');?>>About</a></li>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.