我正在使用 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/