如何使用PHP更改HTML中的类?

如何使用PHP更改HTML中的类?,php,html,class,Php,Html,Class,我在我的所有页面中都有下面的代码,除了每个页面外,该类都在该特定页面上 <li><a href="../index.html">Homescreen</a></li> <li><a href="socialstuff.html">Social Stuff</a></li> <li><a href="sops.html">SOP's</a></li> &l

我在我的所有页面中都有下面的代码,除了每个页面外,该类都在该特定页面上

<li><a href="../index.html">Homescreen</a></li>
<li><a href="socialstuff.html">Social Stuff</a></li>
<li><a href="sops.html">SOP's</a></li>
<li><a href="login.php">FTO Documents</a></li>
<li><a class="selected" href="changelog.html">Changelog</a></li>

  • 我正在将这些代码放入一个include文件夹中,这样我创建的每个页面就不必在每个页面中都有这行代码。我唯一的问题是,如何检测我所在的页面,然后自动删除选中的旧类并将新类添加到当前页面?

    这在很大程度上取决于您如何处理路由。假设您只使用文件名路由,则可以使用URI检查

    <li><a href="socialstuff.html" class="<?php if($_SERVER['REQUEST_URI']) == 'socialstuff.html'){ echo 'selected'; } ?>">Social Stuff</a></li>
    
  • 然后对
    元素中的每一行执行此操作


    此外,在
    if($\u SERVER['REQUEST\u URI'])=='socialstuff.html')
    行中,
    'socialstuff.html'
    需要是地址栏在该页面上读取的确切URI。因此,如果
    socialstuff.html
    驻留在名为
    misc
    的文件夹中,那么该页面的URI可能是
    misc/socialstuff.html

    我解决这个问题的一种方法是使用帮助函数

    function currentPage($page){ if (basename($_SERVER['PHP_SELF']) == $page) { echo 'selected'; } } 函数currentPage($page){ if(basename($\u SERVER['PHP\u SELF'])==$page){ 回音“选定”; } }
  • 您必须将此函数添加到每个
    li
    中,以检查其是否在该页面上


    我还没有测试过代码,但您将大致了解如何处理这类事情。希望能有所帮助。

    从BayssMekanique的答案中获取细节,但做出更系统的回应。。。反复浏览链接会有所帮助。我还将创建一个函数
    renderlinglist()
    或类似函数,并返回字符串。希望这有帮助


    那么我该如何将所说的类更改为“selected”,我刚刚更改了它。将要应用的类放入echo参数中。在将
    $selected
    变量附加到
    $links
    变量后,应清除该变量。否则它会将同一类应用于所有后续链接。这很有效!我所做的是把这个函数放在我的边栏文件中。真是太棒了!你是怎么做到的?
            <li><a class="<?php currentPage('changelog.html') ?>" href="changelog.html">Changelog</a></li>