通过匹配当前URL与$ _SERVER ['QUERY_STRING']的粗体链接;

时间:2012-05-07 21:16:54

标签: php

我正在尝试根据访问者当前所在的页面在菜单中创建粗体链接。我设法让它使用以下代码,但问题是我的代码有可能在选项下的子菜单,所以链接可能是:

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

子类别工作正常,但问题是,我无法匹配“index.php?page = category”,因为这两个子类别“something”和“somethingelse”也都是粗体。

有没有办法匹配“page = category”的确切字符串,但没有更进一步?

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

2 个答案:

答案 0 :(得分:1)

只需使用equals运算符

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

这更清晰,更易于阅读,而且可能更快。

说过你可以通过使用指定字符串开头和结尾的标记稍微修改正则表达式来实现相同的结果,如下所示:

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

美元符号确保比较是一个不再进一步的字符串(“类别”中的“y”没有任何内容。插入符号(^)在字符串的开头也是如此:它指定您正在检查以“page = cat ...”开头的字符串

有关此类正则表达式用法的更多信息:http://www.regular-expressions.info/anchors.html

答案 1 :(得分:0)

是的,只需使用$_GET['page']

此外,您可能希望将一个具有粗体的类应用于您正在加粗的元素,而不是使用<b>(您可以更好地控制样式,甚至可以更改颜色)

干杯 -D