2010-08-11 30 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