2010-08-11 28 views
0

我希望能够取得我当前所使用的文件和网址的名称,设置两个变量(文件名,文件夹)并根据数组进行检查。根据这些值的不同,我们设置了一个“主动”类来指示该页面是该部分的一部分。获取“活动”页面以设置导航标签

我从来没有真正使用过数组,但我做了一点研究,认为他们是最合乎逻辑的方法。我的设置与文件夹的名称,什么阵列页面应该有

$navPages = array ("band" => array ("biography","index"), 
        "music" => array ("discography","lyrics","meanings",), 
        "site" => array ("about","team") 
       ); 

所以上面的文件夹/带/应有biography.php和index.php文件。所以现在,我需要一种方法来查看阵列并进行比赛,以便如果我访问“site.com/band/biography.php”,我可以检查阵列并说“是的,你”再此页面上。现在应用的“主动”类的“带” < LI>。

到目前为止,我能够得到的文件名现在

$page = basename($_SERVER['PHP_SELF'], ".php"); 

,我想不通如何检查每个数组,看看我是否在正确的页面来的。我试图

if(in_array($page, $navPages[band])) { 
    $class = 'active'; 
} 

而且这样的作品,但我想,必须有办法检查所有3个阵列,'乐队','音乐','网站'。所以我想看看文件名是否在数组中,但我也需要确保它在正确的位置。例如,index.php可以在任何文件夹中,如果index.php在'band'数组中,我只想要一个真正的语句,而不仅仅是整个$ navPages数组。

有人可以帮我解决这个问题吗?我试图尽可能详细,让我知道如果有什么我失踪。

此外,这是我第一次尝试做这样的导航部分。所以,如果你看到我缺少一些我需要做的工作的逻辑,任何提示将不胜感激,谢谢!

回答

0

不要指定密钥band

if(in_array($page, $navPages)) { 
    $class = 'active'; 
} 

这会查找当前页面到整个阵列如果是这样,条件将类设置为电流。

+0

感谢您的回复,我试过这个,但它没有给我一个真实的说法。另外(我编辑了这个帖子来澄清这一点),我需要检查数组与URL,以确保我在正确的位置 - “所以我想看看如果文件名在数组中,但也我需要确保它在正确的位置。例如,index.php可以位于任何文件夹中,如果index.php位于'band'数组中,我只想要一个true语句,而不仅仅是整个$ navPages数组。 – Andelas 2010-08-11 20:04:36

+0

尝试像这样检查索引:'if(in_array($ page,$ navPages)&& in_array('index',$ navPages))' – Sarfraz 2010-08-11 20:07:39