包含PHP文件中的变量信息

时间:2014-10-07 07:37:47

标签: php html menu include code-duplication

目前我正在使用我的网站页脚的PHP文件,因此我可以将其包含在每个页面上,只更改一个文件以更改网站每个页面上的页脚。

现在,我想对我网站上的菜单做同样的事情:

<ul>
<li><a href="#">Menu 1</a></li>
<li><a href="#" class="active">Menu 2</a></li>
<li><a href="#">Menu 3</a></li>
<li><a href="#">Menu 4</a></li>
</ul>

活动课程突出显示用户所在页面的名称,因此如果用户位于网站的“菜单2”页面,则会突出显示“菜单2”。现在我想知道如何将这个菜单放在一个单独的文件中,比如我可以在每个页面中包含的'menu.php',但仍然可以将class =“active”更改为用户所在的页面。

3 个答案:

答案 0 :(得分:3)

$open_page = substr($_SERVER["SCRIPT_NAME"], strrpos($_SERVER["SCRIPT_NAME"],"/")+1);

<ul>
<li><a href="#" <?php if($open_page == "Menu_1.php") echo " class= 'active' "; ?>>Menu 1</a></li>
<li><a href="#" <?php if($open_page == "Menu_2.php") echo " class= 'active' "; ?>>Menu 2</a></li>
<li><a href="#" <?php if($open_page == "Menu_3.php") echo " class= 'active' "; ?>>Menu 3</a></li>
<li><a href="#" <?php if($open_page == "Menu_4.php") echo " class= 'active' "; ?>>Menu 4</a></li>
</ul>

答案 1 :(得分:2)

与文件名相比并非最佳做法&amp;当你的项目变得沉重,难以维护

从页面和页面调用页脚传递页面标识符 -

------ Menu1_page.php --------    
<?php
    require_once 'footer.php';
    getFooter('Menu1');
?>
在footer.php中

,将页脚保持在函数

---- footer.php -----
<?php
function getFooter($activeid){
   ?>
      <ul>
      <li><a href="#" class="<?=($activeid=='Menu1')?'active':''?>">Menu 1</a></li>
      <li><a href="#" class="<?=($activeid=='Menu2')?'active':''?>">Menu 2</a></li>
        ......
      </ul>
   <?php
}
?>

答案 2 :(得分:0)

好吧,根据你浏览页面的方式,你会有类似的东西 mydomain.com\index.php?page=whereyouare

然后你可以访问$_GET['page'](甚至在你的footer.php中)来确定你是在哪个页面以及if / else是否正确匹配class = active

我不会建议使用global-vars来解决这个问题。