0

文字列のセットを文字列と照合しています。配列の文字列の1つが文字列に表示されている場合は、テキストが表示されるはずです。

実際には:特定のページにのみメニューを含めたいと思います。そのため、テンプレートにPHPスニペットを含めると、定義されたページ名の1つがURLに表示されたときにメニューが表示されます。現在、私はこのコードを使用しています。

$domain = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING'];

if (strpos($domain, '/page1.php') !== false) {
        echo 'Text',
}
elseif (strpos($domain, '/page2.php') !== false) {
        echo 'Text',
}
elseif (strpos($domain, '/page3.php') !== false) {
        echo 'Text',
}
elseif (strpos($domain, '/page4.php') !== false) {
        echo 'Text',
};

ページごとにelseif行を繰り返すのではなく、コードを凝縮して効率を上げることは可能ですか?次のことを試しましたが、うまくいきませんでした。

$domain = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING'];
$string = array('page1.php', 'page2.php', 'page3.php', 'page4.php');

if (strpos($domain, $string) !== false) {
        echo 'Text',
};

助言がありますか?

フィリップ

4

3 に答える 3

2
$domain = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING'];
$string = array('page1.php', 'page2.php', 'page3.php', 'page4.php');
foreach($string as $str){
   if (strpos($domain, $str) !== false) {
    echo 'Text',
   }
}
于 2012-05-28T21:50:52.873 に答える
0

各ページで異なる結果を生成する必要がある場合はswitch()、を使用する必要があります。すべての結果が同じである場合は、を作成して...array('page1.php', 'page2.php', 'page3.php', 'page4.php');を使用します。in_array()

于 2012-05-28T21:46:41.257 に答える
0

これを試して、

$domain = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].$_SERVER['QUERY_STRING'];
$string = array('page1.php', 'page2.php', 'page3.php', 'page4.php');

foreach ($string as $key => $value) {
  if (strpos($domain, $value) !== false) {
    echo 'Text',
  }
}
于 2012-05-28T21:55:23.107 に答える