使用 PHP 高亮显示当前页面导航菜单

DDD
发布: 2025-10-26 10:52:45
原创
336人浏览过

 使用 PHP 高亮显示当前页面导航菜单

zuojiankuohaophpcnp>本文档将指导你如何使用 PHP 在你的网站导航菜单中高亮显示当前页面。我们将利用 <code>$_SERVER</code> 变量获取当前 URL 或文件名,并将其与导航链接进行比较,从而动态添加 CSS 类来实现高亮效果。文章提供了两种匹配方案:精确匹配和子目录匹配,以及相应的 CSS 样式示例,助你轻松实现导航高亮功能。</p> 在构建网站时,清晰地指示用户当前所处页面至关重要,这可以通过高亮显示导航菜单中的对应链接来实现。以下介绍两种使用 PHP 实现此功能的方法。 ### 方法一:精确匹配文件名 此方法适用于当导航链接直接对应于网站根目录下的 PHP 文件时。 1. **获取当前文件名:** 首先,在你的导航菜单模板之前,添加以下 PHP 代码来获取当前页面的文件名: ```php <?php $thisFile = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : (isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : null)); $thisFile = pathinfo($thisFile, PATHINFO_BASENAME); // $thisFile 现在包含了当前页面的文件名,例如 "team.php" ?>
这段代码首先尝试从 `$_SERVER['REQUEST_URI']` 中获取 URL,如果不存在,则尝试从 `$_SERVER['SCRIPT_NAME']` 中获取。然后,使用 `pathinfo()` 函数提取文件名。
登录后复制
  1. 比较文件名并添加 css 类:

    接下来,在你的导航链接中,使用 PHP 条件语句来检查当前文件名是否与链接对应的文件名匹配。如果匹配,则添加一个特定的 CSS 类,例如 "current-menu active"。

    <a href="team.php" class="list-group-item list-group-item-action py-2 ripple bg-button<?php if (stripos($thisFile, 'team.php') !== false) {echo ' current-menu active';} ?>">
      <i class="fas fa-users fa-fw me-3"></i><span>Our team</span>
    </a>
    登录后复制

    这段代码检查 $thisFile 变量中是否包含 "team.php"。如果包含,则将 "current-menu active" 类添加到 <a> 标签中。

方法二:匹配子目录中的文件

如果你的网站结构包含子目录,并且导航链接指向这些子目录中的文件,则需要使用此方法。

  1. 获取当前 URL:

    立即学习PHP免费学习笔记(深入)”;

    与方法一类似,首先获取当前页面的 URL:

    麦当秀MindShow AiPPT
    麦当秀MindShow AiPPT

    麦当秀|MINDSHOW是一款百万用户正在使用的三分钟生成一份PPT的AI应用系统。它利用引领前沿的人工智能技术,能够自动完成演示内容的设计。

    麦当秀MindShow AiPPT 224
    查看详情 麦当秀MindShow AiPPT
    <?php
    $thisUrl = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : (isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : null));
    $thisFile = pathinfo($thisUrl ,  PATHINFO_BASENAME);
    ?>
    登录后复制
  2. 精确匹配根目录文件,匹配子目录文件:

    <!-- 精确匹配根目录下的 team.php -->
    <a href="team.php" class="list-group-item list-group-item-action py-2 ripple bg-button<?php if ('team.php' === $thisFile)) {echo ' current-menu active';} ?>">...</a>
    
    <!-- 匹配 support 目录下的 team.php -->
    <a href="support/team.php" class="list-group-item list-group-item-action py-2 ripple bg-button<?php if (stripos($thisUrl, 'support/team.php') !== false) {echo ' current-menu active';} ?>">...</a>
    登录后复制

    对于根目录下的文件,使用精确匹配 === 确保只有完全匹配的文件才会被高亮。对于子目录下的文件,使用 stripos() 函数检查 URL 是否包含特定的子目录路径和文件名。

添加 CSS 样式

以上两种方法都会在匹配的链接中添加 CSS 类。你需要定义这些类的样式,以实现高亮效果。例如:

.current-menu {
  border-left: 5px solid #blue; /* 添加左边框 */
  font-weight: bold; /* 加粗字体 */
}

.active {
  background-color: #f0f0f0; /* 更改背景颜色 */
}
登录后复制

你可以根据自己的设计需求自定义这些 CSS 样式。

总结与注意事项

  • 选择合适的匹配方法: 根据你的网站结构和 URL 规则选择精确匹配或子目录匹配。
  • 自定义 CSS 类: 你可以使用任何你喜欢的 CSS 类名,并根据你的网站主题进行样式设置。
  • 安全性: 虽然本例中直接使用了 $_SERVER 变量,但在处理用户输入或构建复杂的 URL 逻辑时,请务必注意安全性,避免潜在的安全漏洞。
  • 代码可维护性: 将导航菜单代码封装成函数或组件,可以提高代码的可读性和可维护性。

通过以上步骤,你就可以轻松地使用 PHP 在你的网站导航菜单中高亮显示当前页面,提升用户体验。

登录后复制

以上就是使用 PHP 高亮显示当前页面导航菜单的详细内容,更多请关注php中文网其它相关文章!

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号