0

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

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>";
}
?>
4

2 回答 2

1

您可以仅使用等于运算符来执行此操作,

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

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

话虽如此,您可以通过使用指定字符串开头和结尾的标记稍微修改正则表达式来获得相同的结果,如下所示:

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

美元符号确保与一个不会进一步进行比较的字符串进行比较(“类别”中的“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 回答