2

私が作成する各ページ内にphpヘッダーを含めようとしています。今私が知る限り、それは<?php include('header.php'); ?>各ファイルの内部を使用して行うことができます。

今私の問題は私が5ページを持っていることです、そしてヘッダーphpに私はこの各ページにリンクするナビゲーションを持っています。ヘッダーをロードするときに、ヘッダーがロードされているファイルのリンクを変更したいと思います。

例:ホームページを開く場合、ヘッダーナビゲーション内のリンクを太字にする必要があります。それをインクルードするとき、またはsmtを含めるときに、おそらくヘッダーファイルに変数を送信する必要がありますか?もしそうなら、それを行う方法よりも?:D

ダニエル、よろしくお願いします!

4

4 に答える 4

2

いつでも$_SERVER['SCRIPT_NAME']、要求された最も外側のphpファイルの名前を取得するために使用できます。それに応じて、ナビゲーションのリンクのスタイルを変更できます。

 <a href="some.php" style="font-weight: <?= $_SERVER["SCRIPT_NAME"] == '/some.php' ? 'bold' : 'normal' ?>">Link to Some</a>
 <a href="other.php" style="font-weight: <?= $_SERVER["SCRIPT_NAME"] == '/other.php' ? 'bold' : 'normal' ?>">Link to Other</a>
于 2012-08-13T14:15:09.990 に答える
2

これを行うには、ヘッダーを含める前に変数を設定するか、URLを確認します。

簡単な例:

$page = "home";
include "header.php"

header.php

if ($page == "home") { ... }

次のコードは、URLからファイル名を取得します

$basename = basename($_SERVER['REQUEST_URI']);

だからあなたが持っているならhttp://mysite.com/index.phpそれはあなたに与えるでしょうindex.php

header.phpこれを上記と同様に使用して、太字にするリンクを決定できます。

于 2012-08-13T14:15:14.483 に答える
2

以下のコードでは、このクラスを他のページに呼び出し、ページ名をパラメーターとして渡すことができ、それを使用してjQuery関数を非常に簡単に呼び出すことができます。

<?php
class header {
function __construct($title = "Home", $page = 'home') {
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title><?php echo $title; ?></title>
         <script type="text/javascript" src="js/jquery.js"></script>
            <script type="text/javascript" src="js/script.js"></script>
            <script>
        $(document).ready(function(){
            $('.<?php echo $page ?>').addClass('active');
            });    
        </script> 
        </head>
<body>
     <ul class="nav">
        <li class="home"><a href="index.php"><br />HOME<br /></a></li>
         <li class="about"><br />ABOUT US<br /></li>
     </ul>
<?php }} ?>
于 2012-08-13T14:21:21.263 に答える
1

1つの方法は、ヘッダーファイル(header.php内)から実行中のスクリプトの名前を確認することです。

$page = basename($_SERVER["REQUEST_URI"]);
if($page == 'index.php') {
    //header included from inside index.php
}
elseif($page == 'contact.php') {
    //header included from contact.php
}
...
于 2012-08-13T14:16:33.740 に答える