Php 是否根据浏览器中打开的页面设置类?

Php 是否根据浏览器中打开的页面设置类?,php,html,Php,Html,我不完全确定这是否可能,但我会尽力解释我的困境 我正在开发的网站有一个标题,其中包含指向重要页面的链接。头html代码驻留在一个文件中,该文件包含在所有其他页面中(php包含) 此header.html由以下代码组成: <li class="m1"><a href="home.php" class="active">Home</a></li> <li class="m2"><a href="faq.php">FAQs<

我不完全确定这是否可能,但我会尽力解释我的困境

我正在开发的网站有一个标题,其中包含指向重要页面的链接。头html代码驻留在一个文件中,该文件包含在所有其他页面中(php包含)

此header.html由以下代码组成:

<li class="m1"><a href="home.php" class="active">Home</a></li>
<li class="m2"><a href="faq.php">FAQs</a></li>
<li class="m3"><a href="">Status</a></li>
<li class="m4"><a href="">Contact Us</a></li>
  • 当前打开的页面旨在将其类设置为“活动”,但这不起作用,因为我的头代码只驻留在一个文件中

    是否有任何方法,使用php或其他东西,我可以根据打开的页面设置类“active”的适当链接

    因此,如果单击FAQ,我希望代码如下所示:

    <li class="m1"><a href="home.php">Home</a></li>
    <li class="m2"><a href="faq.php" class="active">FAQs</a></li>
    <li class="m3"><a href="">Status</a></li>
    <li class="m4"><a href="">Contact Us</a></li>
    

  • 是的,您可以很容易地检查您使用的是
    $\u服务器['PHP\u SELF']

    实现这一点的一个好方法是将链接/标题存储在一个数组中,然后在它们之间循环,并在活动类等于
    PHP\u SELF
    时回显它:

    <?php
    $links = array('Home' => 'home.php', 'FAQs' => 'faq.php', 'Status' => '', 'Contact Us' => '');
    foreach ($links as $text => $page)
    {
     echo '<li><a href="'. $page .'"';
     if ($_SERVER['PHP_SELF'] == $page)
     {
      echo ' class="active"';
     }
     echo '>'. $text .'<a></li>';
    ?>
    

    是的,您可以很容易地检查您使用的是
    $\u服务器['PHP\u SELF']

    实现这一点的一个好方法是将链接/标题存储在一个数组中,然后在它们之间循环,并在活动类等于
    PHP\u SELF
    时回显它:

    <?php
    $links = array('Home' => 'home.php', 'FAQs' => 'faq.php', 'Status' => '', 'Contact Us' => '');
    foreach ($links as $text => $page)
    {
     echo '<li><a href="'. $page .'"';
     if ($_SERVER['PHP_SELF'] == $page)
     {
      echo ' class="active"';
     }
     echo '>'. $text .'<a></li>';
    ?>
    

    以下是您可以选择的另一条路线:

    <?php
    function getCurrPage() {
        $org_page = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
        $stripped_page = substr($org_page, 0, -4); 
        return $stripped_page;
    }
    $curPage = getCurrPage();
    $actPage = array();
    $actPage[$curPage] = ' class="active"';
    ?>
    <li class="m1"><a href="home.php"<?=$actPage['home'];?>>Home</a></li>
    <li class="m2"><a href="faq.php"<?=$actPage['faq'];?>>FAQs</a></li>
    <li class="m3"><a href=""<?=$actPage['status'];?>>Status</a></li>
    <li class="m4"><a href=""<?=$actPage['contact'];?>>Contact Us</a></li>
    
    
    

  • 以下是您可以选择的另一条路线:

    <?php
    function getCurrPage() {
        $org_page = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);
        $stripped_page = substr($org_page, 0, -4); 
        return $stripped_page;
    }
    $curPage = getCurrPage();
    $actPage = array();
    $actPage[$curPage] = ' class="active"';
    ?>
    <li class="m1"><a href="home.php"<?=$actPage['home'];?>>Home</a></li>
    <li class="m2"><a href="faq.php"<?=$actPage['faq'];?>>FAQs</a></li>
    <li class="m3"><a href=""<?=$actPage['status'];?>>Status</a></li>
    <li class="m4"><a href=""<?=$actPage['contact'];?>>Contact Us</a></li>
    
    
    
  • 您可以使用JQuery(JavaScript)动态执行:

    $(document).ready(function() {
        //Add the current class to all links pointing to the current page
        search = window.location.search;
        $("*").find("a[href='" + search + "']").each(function(){
            $(this).parent('li').addClass("active");
            //add your own logic here if needed
        })
    })
    
    这很有效

    另一种选择是使用
    $\u服务器['PHP\u SELF']
    \uu文件\uuuuu

    <li class="m1"><a href="home.php"<?php if (basename($_SERVER['PHP_SELF']) == 'home.php'): ?> class="active"<?php endif; ?>>Home</a></li>
    <li class="m1"><a href="faq.php"<?php if (basename($_SERVER['PHP_SELF']) == 'faq.php'): ?> class="active"<?php endif; ?>>FAQ</a></li>
    <li class="m1"><a href="status.php"<?php if (basename($_SERVER['PHP_SELF']) == 'status.php'): ?> class="active"<?php endif; ?>>Statys</a></li>
    <li class="m1"><a href="contact_us.php"<?php if (basename($_SERVER['PHP_SELF']) == 'contact_us.php'): ?> class="active"<?php endif; ?>>Contact Us</a></li>
    
  • 您可以使用JQuery(JavaScript)动态执行:

    $(document).ready(function() {
        //Add the current class to all links pointing to the current page
        search = window.location.search;
        $("*").find("a[href='" + search + "']").each(function(){
            $(this).parent('li').addClass("active");
            //add your own logic here if needed
        })
    })
    
    这很有效

    另一种选择是使用
    $\u服务器['PHP\u SELF']
    \uu文件\uuuuu

    <li class="m1"><a href="home.php"<?php if (basename($_SERVER['PHP_SELF']) == 'home.php'): ?> class="active"<?php endif; ?>>Home</a></li>
    <li class="m1"><a href="faq.php"<?php if (basename($_SERVER['PHP_SELF']) == 'faq.php'): ?> class="active"<?php endif; ?>>FAQ</a></li>
    <li class="m1"><a href="status.php"<?php if (basename($_SERVER['PHP_SELF']) == 'status.php'): ?> class="active"<?php endif; ?>>Statys</a></li>
    <li class="m1"><a href="contact_us.php"<?php if (basename($_SERVER['PHP_SELF']) == 'contact_us.php'): ?> class="active"<?php endif; ?>>Contact Us</a></li>
    

  • 谢谢,我试试看,然后回来谢谢,我试试看,然后回来