2012-06-12 62 views
1

我在CodeIgniter框架上構建一個站點,並使用PHP開關加載與頁面相關的特定javascript。當我到達第三個URI段時,我的問題就出現了,它通常是一個變量。比如我有沒有問題,有說用於變化url的PHP開關案例

case 'foo/bar': 

但如果我的網址是像http://mysite.com/foo/bar/1234,其中1234的東西,如果一個變量傳遞給控制器​​。爲每個變量寫出一個案例顯然沒有意義,因爲現在大約有3萬個變量。

目前這裏是我的代碼工作片段...

switch($this->uri->uri_string()) { 

      case '': 

      break; 

      case 'browse': 

      break; 

      case 'contest/leaderboard': 

回答

0

你也可能會引起爆炸的正斜槓的URL,然後檢查數組中的每個元素。

例如

$url_parts = explode('/', $this->uri->uri_string()); 
switch($url_parts[0]){ 
    case 'foo': 
    if(count($url_parts) > 1){ 
     if($url_parts[1] == "bar"){ 
     // when the url begins with foo/bar 
     } 
    } 
    break; 
    case 'browse': 
    //when url is browse 
    break; 
} 

這樣做的好處是,你可以包括通用foo開頭的所有URL代碼。不知道這是否是必需的,但可能有用

+0

完美!謝謝 –

0

,那麼你使用「打頭」的條件:

$uri = $this->uri->uri_string(); 
if (0 === strpos($uri, 'foo/bar')) { 
    // starts with foo/bar 
} elseif (0 == strpos($uri, .... etc