我想检查用户是否在:http://www.stack.net或http://www.stack.net/或http://www.stack.net/index或http://www.stack.net/index.php
如果其中一个变量匹配,我想添加一个类。我正在寻找用PHP工作。从我使用的其他页面:
function echoSelectedClassIfRequestMatches($requestUri)
{
$current_file_name = basename($_SERVER['REQUEST_URI'], ".php");
if ($current_file_name == $requestUri)
echo 'active';
}
HTML
<li class="nav-item <?=echoSelectedClassIfRequestMatches("inscripciones")?>" id="inscripciones-item-menu">
当用户不在根域时,这是有效的,但如果他在根域中,我不知道如何实现它。
尝试使用:
function echoSelectedClassIfRequestMatches($requestUri)
{
$current_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$last_part = rtrim($last_part ,"/"); // removing trailing slash if present
$last_part = end(split('/',$current_url )); // getting last part of url
// now you can validate this add class names
}
$last_part
可以是文件名,甚至是目录名
编辑:
所以现在你可以拥有如下功能:
function echoSelectedClassIfRequestMatches($requestUri)
{
// validation logic
if (your condition)
echo 'active';
else // optional
echo '';
}
你可以像以下一样使用它:
<li class="nav-item <?=echoSelectedClassIfRequestMatches("inscripciones")?>" id="inscripciones-item-menu">
你应该使用$_SERVER['PHP_SELF']
而不是basename($_SERVER['REQUEST_URI'], ".php")
。
如果你在根中,这将给你/index.php
。