Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果url是根域添加类(PHP)_Php_Html - Fatal编程技术网

如果url是根域添加类(PHP)

如果url是根域添加类(PHP),php,html,Php,Html,我想检查用户是否在:或 如果其中一个变量匹配,我想添加一个类。我正在搜索如何使用PHP处理这个问题。在我使用的其他页面中: function echoSelectedClassIfRequestMatches($requestUri) { $current_file_name = basename($_SERVER['REQUEST_URI'], ".php"); if ($current_file_name == $requestUri) echo 'acti

我想检查用户是否在:或

如果其中一个变量匹配,我想添加一个类。我正在搜索如何使用PHP处理这个问题。在我使用的其他页面中:

function echoSelectedClassIfRequestMatches($requestUri)
{
    $current_file_name = basename($_SERVER['REQUEST_URI'], ".php");

    if ($current_file_name == $requestUri)
        echo 'active';
} 
HTML

当用户不在根域上时,这是可行的,但是如果他在根域中,我不知道如何实现它。

您应该使用$\u SERVER['PHP\u SELF'],而不是basename$\u SERVER['REQUEST\u URI'],.PHP

如果您在根目录中,这将为您提供/index.php。请尝试使用:

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_部分可以是文件名,甚至是目录名

编辑:

现在,您可以使用如下函数:

function echoSelectedClassIfRequestMatches($requestUri)
{
    // validation logic

    if (your condition)
        echo 'active';
    else           // optional
        echo ''; 
} 
你可以像这样使用它:

<li class="nav-item <?=echoSelectedClassIfRequestMatches("inscripciones")?>" id="inscripciones-item-menu">

您能用index.php获取URL`、`等吗?是的,因为我调用了文件名。但是如果url是stack.net,stack.net/我有问题,因为url中没有文件名。你应该首先应用SEO解决方案:使用永久重定向规范指向同一资源的url。我需要在HTML中插入什么?这个@是的,你可以。我已经更新了我的答案
<li class="nav-item <?=echoSelectedClassIfRequestMatches("inscripciones")?>" id="inscripciones-item-menu">