0

私が立ち往生している別の簡単なこと:

以下を使用して現在の URL を確認し、結果に応じて div クラスを選択しています。

$checkit = $_SERVER['PHP_SELF'];
... 
<li "; if(strstr($checkit,'welcome')) { echo "class='active_tab'"; }...

私ができるようにしたいのは、同じ「li」アイテムに「active_tab」クラスを与える必要がある他の単語がURLに含まれているかどうかも確認することですが、形式がわかりません。明らかにこれは機能しませんが、次のようなものです。

<li "; if(strstr($checkit,'welcome', 'home', 'yourprofile')) { echo "class='active_tab'"; }...

誰か助けてくれませんか?

4

1 に答える 1

1

より良い方法があることは知っていますが、その場しのぎの修正は次のようになります

$searchStrings = array('welcome','home','yourprofile');
$stringFound = false;
foreach($searchStrings as $checkString)
{
  if(strstr($checkit, $checkString))
  {
    $stringFound = true;
    break;
  }
}

次に、 を使用$stringFoundして出力を変更します。

編集1:ZombieHuntercontinueのおかげで切り替えました(遅くなりました-_-)break

編集 2: または、正規表現を使用することもできます (ただし、ここではやり過ぎだと思います)。

if(preg_match('/(welcome|home|your profile)/',$checkit))
{
 // Do your stuff here
}

しかし、これはそれほど表現力がなく (配列の読み取りと拡張が容易です)、それらの値が積み重なると、DB クエリなどのストレージに配列を簡単にフックできます。

于 2012-10-24T22:49:21.137 に答える