扩展stripos($ _ SERVER ['REQUEST_URI']以检查更多URL

时间:2012-12-11 18:45:02

标签: php stripos

我正在使用stripos修改活动导航类

<?php if (stripos($_SERVER['REQUEST_URI'],'/members/login') !== false) {echo 'class="active"';} ?>

它就像一个魅力。但是我需要添加另一个REQUEST_URI来检查字符串,并且无法弄清楚如何正确格式化代码。

我试过了:

, '/members/login | /members/members'

和其他人没有成功。

2 个答案:

答案 0 :(得分:3)

你只需要做两次:

if(
   stripos($_SERVER['REQUEST_URI'],'/members/login') === 0
   ||
   stripos($_SERVER['REQUEST_URI'],'/members/members') === 0){ ...

请注意,我切换到===0因为我认为你不希望'/ someotherpartofyoursite / members / members'大概匹配。如果你想在1个电话中使用它,你可以使用正则表达式(参见preg_match()),但这很快&amp;我认为很清楚。

如果列表变得更长,则取决于这些是否是整个路径,如果是,那么这样的事情可能更合适:

$urls = array('/members/login','/members/members');
if(in_array(parse_url($_SERVER['HTTP_REQUEST_URI'], PHP_URL_PATH),$urls)){....

...但不知道你的网址方案是猜测。

答案 1 :(得分:1)

您可以通过单次调用preg_match来完成此操作,如下所示:

if (preg_match('#/members/(?:login|members)#i', $_SERVER['REQUEST_URI'])) {
    // matched
}