preg_match url当前功能设计(条件),或更好的想法

时间:2012-12-08 21:17:40

标签: php url menu preg-match

首先,我不太了解这段代码,我知道它很差,原谅我。

在我的网站上,我有一个弃用的代码“ereg”,现在我试图用preg_match来解决,但我不知道这个新的PHP代码。

function Menu($sitio) {
    $url = 'http://www.'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
    if(ereg($sitio, $url)) {echo 'class="totalactive"';}
}

如您所见,如果我有一个列表,例如:

<li <?php Menu (/contact) ?>>

如果您在www.yourwebsite.com/contact,则代码可以正常运行。 (但我认为有更好的方法可以做到这一点,因为我的主页和其他任何不在此列表中的网站都有问题。)

我觉得这段代码太糟糕了,用php5.3或者更多知道它就更没用了。

有一种新方法可以通过Preg_match检测网站并默认设置其中一个吗?或者用php5.3解决这个问题的全新更好的方法?

1 个答案:

答案 0 :(得分:0)

只需用此替换您的ereg来电。

preg_match("|" . preg_quote($sitio, "|") . "|", $url)

要仅匹配指定的网址,您必须在此正则表达式中添加开头和结尾符号,如下所示:

preg_match("|^" . preg_quote($sitio, "|") . "$|", $url)