1

CodeIgniter フレームワークでサイトを構築しています。PHP スイッチを使用して、ページに関連する特定の JavaScript をロードしています。私の問題は、通常は変数である 3 番目の URI セグメントに到達したときに発生します。たとえば、私は言うことに問題はありません

case 'foo/bar':

しかし、私の URL がhttp://mysite.com/foo/bar/1234のようなもので、変数がコントローラーに渡された場合は 1234 だったとしたらどうでしょう。現在約 30k あるため、変数ごとにケースを書き出すのは明らかに意味がありません。

現在、ここに私のコードの作業スニペットがあります...

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

            case '': 

            break;

            case 'browse':

            break;

            case 'contest/leaderboard':
4

2 に答える 2

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 に共通のコードを含めることができることです。これが必要かどうかはわかりませんが、おそらく役立つ可能性があります

于 2012-06-12T14:31:05.833 に答える
0

したがって、「で始まる」条件を使用します。

$uri = $this->uri->uri_string();
if (0 === strpos($uri, 'foo/bar')) {
    // starts with foo/bar
} elseif (0 == strpos($uri, .... etc
于 2012-06-12T14:18:53.437 に答える