0

今日まで私は次の機能を使用してきました

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');
}

これを正しく行う方法についてのヘルプ、フィードバック、ロジック、およびアイデアに感謝します。

4

1 に答える 1

1

実行中のスクリプトを確認する代わりに、$_SERVER['REQUEST_URI']を確認してください。これにより、クライアントから要求された相対 URL が得られます。

于 2013-07-09T17:37:46.290 に答える