0

私はphpコードを使用しています:

<body id="<?php echo str_replace("index.php?","",(basename($_SERVER['REQUEST_URI'],".php"))); ?>">

<?php
    if(isset($_GET['start'])){
     include('includes/start.php');
    }else if(isset($_GET['help'])){
     include('includes/help.php');
    }else{
     include('includes/start.php');
    }
?>

それはうまく機能します-index.php?helpを「ヘルプ」に、index.php?startをボディIDの「開始」にカットします。しかし、ボディIDにindex.phpを入力すると、「開始」ではなく「インデックス」になります。start.php が含まれている index.php に「開始」 ID ボディ ID を表示するように指示する方法はありますか?

アップデート

動的に動作する必要があります-ボディ ID は、次のコードのような、含まれている .php ファイルの名前です。

<?php 
   $page = str_replace(array( 'server_name', 'index', '?',  '/', '.php'), '', $_SERVER['REQUEST_URI']);
   $page = $page ? $page : 'start';
?>

<body id="<?php echo $page ?>">
4

2 に答える 2

0

100%取得できるかわかりませんが、試すことができます

$id = $_SERVER['QUERY_STRING'];
$bodyID = $id;
switch ($id) {
    case "help" :

        include ('includes/help.php');
        break;
    default :
        $bodyID = "start";
        include ('includes/start.php');
        break;
}

printf("<body id=\"%s\"  >", $bodyID);

実行index.php?helpすると、含まれinclude ('includes/help.php');、出力されます

<body id="help"  >
于 2012-10-13T12:36:10.653 に答える
0

代わりにこれを使用するのが最善です:

<?php
    $ids = 'start,help,something';
    $ids = explode(',',$ids);
    $included = 0;
    foreach ($ids as $id) {
        if (isset($_GET[$id])) {
            include('includes/'.$id.'.php');
            $included = 1;
            break;
        }
    }
    if (!$included) include('includes/'.$ids[0].'.php');
?>

それで:

<body id="<?php echo $id; ?>">
于 2012-10-13T12:36:50.877 に答える