2014-10-07 74 views
3

目前,我正在使用我的网站的页脚使用PHP文件,因此我可以将它包括在每个页面上,并只更改一个文件以更改网站每个页面上的页脚。包含的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
$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> 
+0

工程就像一个魅力,谢谢。 – 2014-10-07 08:01:32

+0

不客气! – rikpg 2014-10-07 08:02:13

0

嗯,这取决于你如何浏览你的网页,你会碰到这样的 mydomain.com\index.php?page=whereyouare

然后你就可以访问$_GET['page'](甚至在你的footer.php)来确定你是什么页面,如果/否则它正确地匹配类=活跃

我不会reccomend使用全球增值经销商来解决这个问题。

+0

我为此使用全局变量。我不喜欢在代码中嗅探$ _GET。 – Sharky 2014-10-07 07:45:55

2

与文件名比较是不是最好的做法&当你的项目变重,其很难维持

呼叫从&页面页脚传递一个页面identifier-

------ 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 
} 
?> 
+0

您错过了变量中的'$',否则这是我对此问题的首选解决方案。 – 2014-10-07 08:47:35

+0

oops。修正:-) – 2014-10-07 10:09:17