0

訪問者が現在どのページにいるかに応じて、メニューに太字のリンクを作成しようとしています。次のコードでなんとか動作させることができましたが、問題は、私のコードにはオプションの下にサブメニューがある可能性があるため、リンクが次のようになる可能性があることです。

index.php?page=category
index.php?page=category&subcategory=something
index.php?page=category&subcategory=somethingelse

サブカテゴリは正常に機能していますが、問題は、サブカテゴリ「something」と「somethingelse」の両方が太字になるため、「index.php?page=category」を一致させる方法がないことです。

「page=category」の正確な文字列を一致させる方法はありますか?

<?
$urlstring = $_SERVER['QUERY_STRING'];
if (preg_match ("/page=category/i", $urlstring)) {
echo "<b>";
}
?>
4

2 に答える 2

1

equals 演算子だけでこれを行うことができます。

if ("page=category" == $url_string)

これはより明確で読みやすく、おそらく高速です。

次のように、文字列の先頭と末尾を指定するマーカーを使用して正規表現をわずかに変更することで、同じ結果を得ることができます。

if (preg_match("/^page=category$/"', $url_string)

ドル記号は、比較がそれ以上進まない文字列であることを保証します (「category.」の「y」を超えるものはありません。キャレット (^) は、文字列の先頭で同じことを行います。 「page=cat...」で正確に始まる文字列をチェックしています

この種の正規表現の使用法について詳しくは、http: //www.regular-expressions.info/anchors.htmlをご覧ください。

于 2012-05-07T21:34:27.967 に答える
0

ええ、ただ使ってください$_GET['page']

また、使用するのではなく、太字にする要素に太字のクラスを適用する<b>こともできます (スタイルをより細かく制御でき、色を変更することもできます)。

乾杯 -D

于 2012-05-07T21:31:50.680 に答える