php - 使用 PHP 应用的导航栏如何让它在我的每个页面上看起来略有不同?

标签 php html css

我正在使用 PHP 函数 ob_start(输出缓冲)...拼凑一个"template",其中包含每个页面上几乎相同的所有位(即导航栏和背景颜色等) ) 和每个页面唯一的“内容”。

但是,当在特定页面上时,我希望导航栏中该页面的链接更改为不同的颜色(只是为了突出显示您所在的页面),有没有办法让它做到这一点?

非常感谢

最佳答案

使用 $_SERVER['REQUEST_URI'] 获取调用脚本时使用的路径和查询参数。并将其与您网页的网址进行比较,如果它们匹配,那就是您所在的网页。

例如:

<style>
a { color: blue; }
a.current { color: orange; }
</style>

<?php

$page1_url = '/path/page.php?subpage=1';
$page2_url = '/path/page.php?subpage=2';
$page3_url = '/path/page.php?subpage=3';


/**
 *
 * determine if link is part of the request uri, and if so assume we are on that page   
 *
 * returns true if we are on that page, false otherwise
 *
 */
function is_current_page ($page_url)
{
    $current_url = $_SERVER['REQUEST_URI'];

    return (strpos ($current_url, $page_url) !== false);
}


?>
<a href="<?php echo $page1_url; ?>" class="<?php echo (is_current_page ($page1_url) ? 'current' : ''); ?>">Page 1</a>
<a href="<?php echo $page2_url; ?>" class="<?php echo (is_current_page ($page2_url) ? 'current' : ''); ?>">Page 2</a>
<a href="<?php echo $page3_url; ?>" class="<?php echo (is_current_page ($page3_url) ? 'current' : ''); ?>">Page 3</a>

关于php - 使用 PHP 应用的导航栏如何让它在我的每个页面上看起来略有不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24734707/

相关文章:

jquery - 如何更改样式表的 src 属性

css: logo: img: 向右浮动:很奇怪:仍然向左浮动并显示另一个 div 的 bgcolor

php - 如何获取特定父项(父项 ID)的子项并在家谱树中显示输出

php - Codeigniter -- _render_page() 未定义

php - 在 Laravel get() 查询生成器中附加两个数组

html - Bootstrap 3 Overlay 标题未正确对齐

javascript - 根据值范围更改元素颜色

php - WooCommerce选择性地显示缺货的产品

css - 带有 img 的 HTML div 奇怪地显示

html - 列表垂直对齐文本中间与列表样式图像