将页面名称添加到body标记

时间:2014-02-11 14:47:59

标签: php

我有以下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>

2 个答案:

答案 0 :(得分:0)

在echo

中添加变量 $ page 非常简单
echo "class='active' id='$page'";

答案 1 :(得分:0)

基本上,如果您不想修改模板,则不能。

解决方案是在您的模板中执行此操作,但对您来说一定很明显:

<body <?php echo $id; ?>>

对你来说不那么明显,只是你不能这样做而不触及模板。

另外,你应该避免使用全局变量。