1

striposアクティブなナビゲーションクラスを変更するために使用していますが、

<?php if (stripos($_SERVER['REQUEST_URI'],'/members/login') !== false) {echo 'class="active"';} ?>

それは魅力のように機能します。ただし、文字列をチェックインするために別のコードを追加する必要がありREQUEST_URI、コードを適切にフォーマットする方法がわかりません。

私が試してみました:

, '/members/login | /members/members'

と他の人は成功しませんでした。

4

2 に答える 2

3

これを 2 回行うだけです。

if(
   stripos($_SERVER['REQUEST_URI'],'/members/login') === 0
   ||
   stripos($_SERVER['REQUEST_URI'],'/members/members') === 0){ ...

===0「/someotherpartofyoursite/members/members」がおそらく一致することを望まないので、私がに切り替えたことに注意してください。1回の呼び出しでそれが必要な場合は、正規表現を使用できますが( を参照preg_match())、これは私の意見では十分に高速で明確です。

リストが長くなる場合は、これらがパス全体であるかどうかに依存し、そうである場合は、次のようなものがより適している可能性があります。

$urls = array('/members/login','/members/members');
if(in_array(parse_url($_SERVER['HTTP_REQUEST_URI'], PHP_URL_PATH),$urls)){....

...しかし、推測であるあなたのURLスキームを知りません。

于 2012-12-11T18:50:52.740 に答える
1

次のように、 preg_matchへの 1 回の呼び出しでそれを行うことができます。

if (preg_match('#/members/(?:login|members)#i', $_SERVER['REQUEST_URI'])) {
    // matched
}
于 2012-12-11T18:55:28.383 に答える