1

現在、次のコードを使用して、リンクでアクティブな状態を生成しています。 <?php if ($_SERVER["REQUEST_URI"] == "/styles/bracelets.html/"):?>

その後に、else if ステートメントが続きます。/styles/bracelets.html?p=2、/styles/bracelets.html?p=3 などのパスを持つすべてのページが上記のパスに含まれるように、ワイルド カードを追加するにはどうすればよいですか。

前もってありがとうサム

4

2 に答える 2

1

この場合、strpos()を使用できます。

if (strpos($_SERVER['REQUEST_URI'], '/styles/bracelets.html/') === 0):

これは基本的に、 がリクエスト URI の先頭にあることを確認/styles/bracelets.html/し、末尾に追加のコンテンツがある場合にもパス/します。 strpos干し草の山にニーズが見つからない場合は false を返し、干し草の山の先頭にある場合は 0 を返すため、===.

preg_match()も機能しますが、この場合は strpos がうまく機能します。

于 2012-05-11T23:20:52.463 に答える
0

ややクリーンなアプローチを見つけたと思います:

if($_SERVER['SCRIPT_NAME'] == '/desired_page_name.php')

は現在の$_SERVER['SCRIPT_NAME']スクリプトのパスを返しますが、可能性のある $_GET 連結を省略します。

つまり、 www.example.com/page.php?variable=valueが入力された場合、一部$_SERVER['SCRIPT_NAME']のみが含まれます/page.php

于 2016-08-17T18:22:39.057 に答える