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



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

在我的网站上,我有一个不推荐使用的代码"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来修复这个问题的一种全新的更好的方法?

只需将ereg调用替换为此即可。

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

为了只匹配指定的url,你必须在正则表达式中添加一个开始和结束符号,如下所示:

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

最新更新