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

问题描述 投票:0回答:2

我想检查用户是否在:http://www.stack.nethttp://www.stack.net/http://www.stack.net/indexhttp://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">

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

php html
2个回答
1
投票

尝试使用:

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">

0
投票

你应该使用$_SERVER['PHP_SELF']而不是basename($_SERVER['REQUEST_URI'], ".php")

如果你在根中,这将给你/index.php

© www.soinside.com 2019 - 2024. All rights reserved.