首先,我不太了解这段代码,我知道它很差,原谅我。
在我的网站上,我有一个弃用的代码“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解决这个问题的全新更好的方法?
答案 0 :(得分:0)
只需用此替换您的ereg
来电。
preg_match("|" . preg_quote($sitio, "|") . "|", $url)
要仅匹配指定的网址,您必须在此正则表达式中添加开头和结尾符号,如下所示:
preg_match("|^" . preg_quote($sitio, "|") . "$|", $url)