检测当前页面并将其显示为标记的链接


Detect and display current page as marked link

直到今天,我一直在使用以下函数

function menu_active($pagename)
{
    $active = basename($_SERVER['PHP_SELF'], ".php");
    if ($active === $pagename) echo "id='active' ";
}

And in HTML
<?php menu_active('page_name'); ?>

检测哪个页面处于活动状态以将其标记为当前页面,但当我更改页面显示方法时,它不再工作。所以我想知道如何更改函数使其工作。在下面的脚本中,我尝试将$pagename声明为filename.inc.php,但没有用。

我正在使用此脚本显示页面

$pages_dir = 'pages';
if (!empty($_GET['p'])) 
{
    $pages = scandir($pages_dir, 0);
    unset($pages[0], $pages[1]);
    $p = $_GET['p'];
    if (in_array($p . '.inc.php', $pages)) 
    {
        include ($pages_dir . '/' . $p . '.inc.php');
    } 
    else 
    {
        echo 'Error';
    }
} 
else 
{
    include ($pages_dir . '/home.inc.php');
}

我感谢任何关于如何正确完成这项工作的帮助、反馈或逻辑和想法。

不要检查哪个脚本正在运行,而是检查$_SERVER['REQUEST_URI']。这将根据客户端的请求为您提供相对URL。