2013-08-30 21 views
0

我有這樣的代碼:PHP - 應用代碼的子頁面

<?php $url = JURI::getInstance()->toString(); 
if ($url == "http://example.com/news/latest/"){ 
    echo "This is latest page"; 
} else { 
    echo "This is not latest page"; 
} 
?> 

我想要做的是,而不是「http://example.com/news/latest/」,我怎麼能選擇下/最新/網頁/項目。如果它使任何更多的意義,這裏有一個語法:

if ($url == "http://example.com/news/latest/" + ANYTHING UNDER THIS) 

我不能使用不等於($ URL =!),因爲它會包括其他父頁面不等於/最新/。我只是想要什麼。如果有人瞭解它,我需要幫助如何將它放入代碼。

更新: 我想要做的是,如果頁面是example.com/news/latest,它會回顯「最新」。例如,如果我在example.com/news/latest/subpage1/subpage2中,它會回顯「您位於最新版下的頁面」。超越「最新」的任何內容都會迴應。

回答

0
$str = 'example.com/news/latest/dfg'; 

preg_match('/example.com\/news\/([^\/]+)\/?(.*)/', $str, $page); 

if(isset($page[2]) && $page[2]) 
    echo 'You are under: ' , $page[1]; 
elseif(isset($page[1])) 
    echo 'At: ' , $page[1]; 
else 
    echo 'Error'; 

編輯:澄清後切換到正則表達式。

+0

它回聲IF和ELSE相同的字符串。我想要做的是如果該頁面是http://example.com/news/latest/,它會回顯「最新」。例如,如果我在http://example.com/news/latest/subpage1/subpage2/中,它會回顯「您位於Latest中的頁面」。 – Elmer

+0

@Elmer我已經更新了我的答案。 – Dexa

+0

謝謝! :)我更新了一些代碼,以滿足我的需求。 – Elmer

0

使用正則表達式:

$matches = array(); 
if((preg_match('#http://example\.com/news/latest/(.*)#', $url, $matches)) === 1) { 
    if(strlen($matches[0]) > 0) { 
     echo "You're at page: $matches[0]"; 
    } else { 
     echo "You're at the root"; 
    } 
} else { 
    // Error, incorrect URL (should not happen) 
} 

編輯:固定的,未經檢驗的,所以你可能需要調整它一點

+0

它迴應IF和ELSE的相同字符串:/ – Elmer

+0

它不會改變剛回答問題的字符串。 但我只是檢查子字符串,如果它是固定的,不需要使用正則表達式,據我所知。 – Elin

相關問題