2012-10-11 67 views
1

請求URL我想使用url自定義在PHP

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 

$gallerypageurl="http://www.domain.com/gallery/"; 
if ($gallerypageurl==$url){ echo "selected"; }else { echo "";} 

這凸顯出庫選項卡時,網址爲http://www.domain.com/gallery/突顯當前選項卡 但我的畫廊有一個分頁,所以當我去第二頁的網址是http://www.domain.com/gallery/2/

這不會高亮顯示當前庫選項卡,因爲$ URL(http://www.domain.com/gallery/2/)不等於$ gallerypageurl(HTTP://www.domain .com/gallery/)。

你怎麼只提取頁面的URL沒有頁碼/ 2 /或/ 3/

回答

1

你可以使用(例如...)stristr

if (stristr($url, $gallerypageurl) !== false) 
{ 
    // $gallerypageurl was found in $url 
    echo "selected"; 
} 
+0

感謝您的回答。 – ADHI

1

你可以這樣做與

if (strpos($url, $gallerypageurl) !== false) { 
    echo 'selected'; 
} 
+0

這並不檢查$ gallerypageurl的位置。它可能是域/子域,路徑,文件的一部分... – Carlos

+0

謝謝..它的作品 – ADHI

0

此功能僅如果節的名稱在URL路徑的第一段。

function inSection($section, $url) 
{ 
    $path = parse_url($url, PHP_URL_PATH); 
    if(preg_match('@^/([^/]+)/[email protected]', $path, $matches)) { 
     return $matches[1] === $section; 
    } 
    return false; 
} 

echo inSection('gallery', 'http://www.domain.com/gallery/2/') 
    ? 'selected' : ''; 
0

您可以使用explode功能分割請求URI到數組,然後檢查數組鍵是那些你需要到:

$uri = 'http://www.domain.com/gallery/2'; 
    $parts = explode('/', $uri); 
    echo 'gallery' === $parts[3] ? 'selected' : ''; 

呼叫array_shift前兩次,跳過http和域名並從1索引。

順便說一句,您應該在進一步處理之前清理$_SERVER密鑰。