我有以下PHP脚本,它会在当前打开的页面中添加一个.Active类 - 这个位有效,但我我也试图将页面名称添加到body标签作为ID“#” ,但似乎没有按照我的方式工作。有人可以建议我吗?
<!--add class .active to current page-->
<?php
$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 'class="active"';
}
}
?>
这是菜单:
<li><a <?php href('index.php'); ?>>Home</a></li>
<li><a <?php href('about.php'); ?>>About</a></li>
<li><a <?php href('treatments.php'); ?>>Treatments</a></li>
HTML代码:
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
在echo
中添加变量 $ page 非常简单echo "class='active' id='$page'";
答案 1 :(得分:0)
基本上,如果您不想修改模板,则不能。
解决方案是在您的模板中执行此操作,但对您来说一定很明显:
<body <?php echo $id; ?>>
对你来说不那么明显,只是你不能这样做而不触及模板。
另外,你应该避免使用全局变量。