Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP时如何根据页面更改导航链接颜色_Php_Html_Css - Fatal编程技术网

使用PHP时如何根据页面更改导航链接颜色

使用PHP时如何根据页面更改导航链接颜色,php,html,css,Php,Html,Css,我目前有7页,都包含相同的导航。我想改变每一个链接的颜色,当我在它各自的页面。因此,如果我在主页中,我希望主页链接是不同的颜色。唯一的问题是,我正在使用PHP包含我的nav。有人能告诉我怎么做吗?这是每一页的代码。除了内容标签之间的内容外,其他内容都不会更改 <?php ob_start(); require 'core/database/connect.php'; ?> <!doctype html> <html> <?php include

我目前有7页,都包含相同的导航。我想改变每一个链接的颜色,当我在它各自的页面。因此,如果我在主页中,我希望主页链接是不同的颜色。唯一的问题是,我正在使用PHP包含我的nav。有人能告诉我怎么做吗?这是每一页的代码。除了内容标签之间的内容外,其他内容都不会更改

<?php
ob_start();
require 'core/database/connect.php';
?>
<!doctype html>
<html>
    <?php include 'includes/head.php'; ?>
    <body>
        <?php
        include 'includes/header.php';
        include 'includes/headline.php';
        include 'includes/nav.php';
        ?>
        <div class="content">
            <?php $pageTitle = 'Title | Home'; ?>

            <div class="container-title">
                <p>Home</p>
            </div>
        </div>
        <?php include 'includes/footer.php'; ?>
    </body>
</html>
<?php
$pageContents = ob_get_contents();
ob_end_clean();

echo_str_replace('<!--TITLE-->', $pageTitle, $pageContents);
?>

nav.php代码:

<div class="nav">
    <div class="nav-inner">
        <ul>
            <li>
                <a href="index.php">Home</a>
            </li>
            <li>
                <a href="page2.php">Page 2</a>
            </li>
            <li>
                <a href="page3.php">Page 3</a>
            </li>
            <li>
                <a href="page4.php">Page 4</a>
            </li>
            <li>
                <a href="page5.php">Page 5</a>
            </li>
            <li>
                <a href="page6.php">Page 6</a>
            </li>
        </ul>
    </div>
</div>


这可能不是完美的解决方案。但效果相当不错

在你的每个网页上说
page1.php
像这样包括

include 'includes/nav.php?page=page1.php';
nav.php:::::

$active = $_GET['page'];
$pageArray = new Array("page1.php", "page2.php", ....);
$makeActive = "";
for($page in $pageArray){
if($active == $page)
$makeActive = "style='color:#F1F1F1'";
echo "<li>
           <a ".$makeActive." href='$page'>". $page ."</a>
      </li>"
}
<div class="nav">
    <div class="nav-inner">
        <ul>
            <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                <a href="index.php">Home</a>
            </li>
            <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                <a href="page2.php">Page 2</a>
            </li>
            <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                <a href="page3.php">Page 3</a>
            </li>
            <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                <a href="page4.php">Page 4</a>
            </li>
            <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                <a href="page5.php">Page 5</a>
            </li>
            <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                <a href="page6.php">Page 6</a>
            </li>
        </ul>
    </div>
</div>
<?php
    function currentPage($pageName){
        if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
            echo ' class="active"';
        }
    }
?>
在您的
nav.php
你喜欢这样吗

include 'includes/nav.php?page=page1.php';
nav.php:::::

$active = $_GET['page'];
$pageArray = new Array("page1.php", "page2.php", ....);
$makeActive = "";
for($page in $pageArray){
if($active == $page)
$makeActive = "style='color:#F1F1F1'";
echo "<li>
           <a ".$makeActive." href='$page'>". $page ."</a>
      </li>"
}
<div class="nav">
    <div class="nav-inner">
        <ul>
            <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                <a href="index.php">Home</a>
            </li>
            <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                <a href="page2.php">Page 2</a>
            </li>
            <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                <a href="page3.php">Page 3</a>
            </li>
            <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                <a href="page4.php">Page 4</a>
            </li>
            <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                <a href="page5.php">Page 5</a>
            </li>
            <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                <a href="page6.php">Page 6</a>
            </li>
        </ul>
    </div>
</div>
<?php
    function currentPage($pageName){
        if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
            echo ' class="active"';
        }
    }
?>
nav.php:
$active=$_GET['page'];
$pageArray=新数组(“page1.php”、“page2.php”、…);
$makeActive=“”;
对于($pageArray中的页){
如果($active==$page)
$makeActive=“style='color:#f1f1';
回声“
  • ” }
    这可能不是完美的解决方案。但效果相当不错

    在你的每个网页上说
    page1.php
    像这样包括

    include 'includes/nav.php?page=page1.php';
    
    nav.php:::::
    
    $active = $_GET['page'];
    $pageArray = new Array("page1.php", "page2.php", ....);
    $makeActive = "";
    for($page in $pageArray){
    if($active == $page)
    $makeActive = "style='color:#F1F1F1'";
    echo "<li>
               <a ".$makeActive." href='$page'>". $page ."</a>
          </li>"
    }
    
    <div class="nav">
        <div class="nav-inner">
            <ul>
                <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                    <a href="index.php">Home</a>
                </li>
                <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                    <a href="page2.php">Page 2</a>
                </li>
                <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                    <a href="page3.php">Page 3</a>
                </li>
                <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                    <a href="page4.php">Page 4</a>
                </li>
                <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                    <a href="page5.php">Page 5</a>
                </li>
                <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                    <a href="page6.php">Page 6</a>
                </li>
            </ul>
        </div>
    </div>
    
    <?php
        function currentPage($pageName){
            if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
                echo ' class="active"';
            }
        }
    ?>
    
    在您的
    nav.php
    你喜欢这样吗

    include 'includes/nav.php?page=page1.php';
    
    nav.php:::::
    
    $active = $_GET['page'];
    $pageArray = new Array("page1.php", "page2.php", ....);
    $makeActive = "";
    for($page in $pageArray){
    if($active == $page)
    $makeActive = "style='color:#F1F1F1'";
    echo "<li>
               <a ".$makeActive." href='$page'>". $page ."</a>
          </li>"
    }
    
    <div class="nav">
        <div class="nav-inner">
            <ul>
                <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                    <a href="index.php">Home</a>
                </li>
                <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                    <a href="page2.php">Page 2</a>
                </li>
                <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                    <a href="page3.php">Page 3</a>
                </li>
                <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                    <a href="page4.php">Page 4</a>
                </li>
                <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                    <a href="page5.php">Page 5</a>
                </li>
                <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                    <a href="page6.php">Page 6</a>
                </li>
            </ul>
        </div>
    </div>
    
    <?php
        function currentPage($pageName){
            if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
                echo ' class="active"';
            }
        }
    ?>
    
    nav.php:
    $active=$_GET['page'];
    $pageArray=新数组(“page1.php”、“page2.php”、…);
    $makeActive=“”;
    对于($pageArray中的页){
    如果($active==$page)
    $makeActive=“style='color:#f1f1';
    回声“
  • ” }
    确定方法,将标识符添加到每个页面,检查并显示所选类。这里的标识符是
    是\u home

    <?php
    ob_start();
    require 'core/database/connect.php';
    $identifier='is_home';//This is for home, assign page_2 for Page 2 or whatevery you like and check on bnav page
    ?>
    <!doctype html>
    <html>
        <?php include 'includes/head.php'; ?>
        <body>
            <?php
            include 'includes/header.php';
            include 'includes/headline.php';
            include 'includes/nav.php';
            ?>
            <div class="content">
                <?php $pageTitle = 'Title | Home'; ?>
    
                <div class="container-title">
                    <p>Home</p>
                </div>
            </div>
            <?php include 'includes/footer.php'; ?>
        </body>
    </html>
    <?php
    $pageContents = ob_get_contents();
    ob_end_clean();
    
    echo str_replace('<!--TITLE-->', $pageTitle, $pageContents);
    ?>
    

    您的nav.php如下所示

    include 'includes/nav.php?page=page1.php';
    
    nav.php:::::
    
    $active = $_GET['page'];
    $pageArray = new Array("page1.php", "page2.php", ....);
    $makeActive = "";
    for($page in $pageArray){
    if($active == $page)
    $makeActive = "style='color:#F1F1F1'";
    echo "<li>
               <a ".$makeActive." href='$page'>". $page ."</a>
          </li>"
    }
    
    <div class="nav">
        <div class="nav-inner">
            <ul>
                <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                    <a href="index.php">Home</a>
                </li>
                <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                    <a href="page2.php">Page 2</a>
                </li>
                <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                    <a href="page3.php">Page 3</a>
                </li>
                <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                    <a href="page4.php">Page 4</a>
                </li>
                <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                    <a href="page5.php">Page 5</a>
                </li>
                <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                    <a href="page6.php">Page 6</a>
                </li>
            </ul>
        </div>
    </div>
    
    <?php
        function currentPage($pageName){
            if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
                echo ' class="active"';
            }
        }
    ?>
    
    
    

      好的,所以方法可以是,向每个页面添加标识符,检查并显示所选的类。这里的标识符是
      是\u home

      <?php
      ob_start();
      require 'core/database/connect.php';
      $identifier='is_home';//This is for home, assign page_2 for Page 2 or whatevery you like and check on bnav page
      ?>
      <!doctype html>
      <html>
          <?php include 'includes/head.php'; ?>
          <body>
              <?php
              include 'includes/header.php';
              include 'includes/headline.php';
              include 'includes/nav.php';
              ?>
              <div class="content">
                  <?php $pageTitle = 'Title | Home'; ?>
      
                  <div class="container-title">
                      <p>Home</p>
                  </div>
              </div>
              <?php include 'includes/footer.php'; ?>
          </body>
      </html>
      <?php
      $pageContents = ob_get_contents();
      ob_end_clean();
      
      echo str_replace('<!--TITLE-->', $pageTitle, $pageContents);
      ?>
      

      您的nav.php如下所示

      include 'includes/nav.php?page=page1.php';
      
      nav.php:::::
      
      $active = $_GET['page'];
      $pageArray = new Array("page1.php", "page2.php", ....);
      $makeActive = "";
      for($page in $pageArray){
      if($active == $page)
      $makeActive = "style='color:#F1F1F1'";
      echo "<li>
                 <a ".$makeActive." href='$page'>". $page ."</a>
            </li>"
      }
      
      <div class="nav">
          <div class="nav-inner">
              <ul>
                  <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                      <a href="index.php">Home</a>
                  </li>
                  <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                      <a href="page2.php">Page 2</a>
                  </li>
                  <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                      <a href="page3.php">Page 3</a>
                  </li>
                  <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                      <a href="page4.php">Page 4</a>
                  </li>
                  <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                      <a href="page5.php">Page 5</a>
                  </li>
                  <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                      <a href="page6.php">Page 6</a>
                  </li>
              </ul>
          </div>
      </div>
      
      <?php
          function currentPage($pageName){
              if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
                  echo ' class="active"';
              }
          }
      ?>
      
      
      

        你可以用这样的东西

        include 'includes/nav.php?page=page1.php';
        
        nav.php:::::
        
        $active = $_GET['page'];
        $pageArray = new Array("page1.php", "page2.php", ....);
        $makeActive = "";
        for($page in $pageArray){
        if($active == $page)
        $makeActive = "style='color:#F1F1F1'";
        echo "<li>
                   <a ".$makeActive." href='$page'>". $page ."</a>
              </li>"
        }
        
        <div class="nav">
            <div class="nav-inner">
                <ul>
                    <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                        <a href="index.php">Home</a>
                    </li>
                    <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                        <a href="page2.php">Page 2</a>
                    </li>
                    <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                        <a href="page3.php">Page 3</a>
                    </li>
                    <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                        <a href="page4.php">Page 4</a>
                    </li>
                    <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                        <a href="page5.php">Page 5</a>
                    </li>
                    <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                        <a href="page6.php">Page 6</a>
                    </li>
                </ul>
            </div>
        </div>
        
        <?php
            function currentPage($pageName){
                if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
                    echo ' class="active"';
                }
            }
        ?>
        
        您的nav.php应更改为:

        <div class="nav">
            <div class="nav-inner">
                <ul>
                    <li>
                        <a href="index.php"<?php currentPage("index"); ?>>Home</a>
                    </li>
                    <li>
                        <a href="page2.php"<?php currentPage("page2"); ?>>Page 2</a>
                    </li>
                    <li>
                        <a href="page3.php"<?php currentPage("page3"); ?>>Page 3</a>
                    </li>
                    <li>
                        <a href="page4.php"<?php currentPage("page4"); ?>>Page 4</a>
                    </li>
                    <li>
                        <a href="page5.php"<?php currentPage("page5"); ?>>Page 5</a>
                    </li>
                    <li>
                        <a href="page6.php"<?php currentPage("page6"); ?>>Page 6</a>
                    </li>
                </ul>
            </div>
        </div>
        
        
        
        这是第一种,也许是最丑陋的方法,但它确实有效。 您可以细化此代码,将其用作提示

        有关basename的更多信息:
        有关$\u服务器的详细信息:

        您可以使用类似的内容

        include 'includes/nav.php?page=page1.php';
        
        nav.php:::::
        
        $active = $_GET['page'];
        $pageArray = new Array("page1.php", "page2.php", ....);
        $makeActive = "";
        for($page in $pageArray){
        if($active == $page)
        $makeActive = "style='color:#F1F1F1'";
        echo "<li>
                   <a ".$makeActive." href='$page'>". $page ."</a>
              </li>"
        }
        
        <div class="nav">
            <div class="nav-inner">
                <ul>
                    <li class=" <?php if($identifier=='is_home')echo 'active'; ?>">
                        <a href="index.php">Home</a>
                    </li>
                    <li class=" <?php if($identifier=='page_2')echo 'active'; ?>">
                        <a href="page2.php">Page 2</a>
                    </li>
                    <li class=" <?php if($identifier=='page_3')echo 'active'; ?>">
                        <a href="page3.php">Page 3</a>
                    </li>
                    <li class=" <?php if($identifier=='page_4')echo 'active'; ?>">
                        <a href="page4.php">Page 4</a>
                    </li>
                    <li class=" <?php if($identifier=='page_5')echo 'active'; ?>">
                        <a href="page5.php">Page 5</a>
                    </li>
                    <li class=" <?php if($identifier=='page_6')echo 'active'; ?>">
                        <a href="page6.php">Page 6</a>
                    </li>
                </ul>
            </div>
        </div>
        
        <?php
            function currentPage($pageName){
                if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
                    echo ' class="active"';
                }
            }
        ?>
        
        您的nav.php应更改为:

        <div class="nav">
            <div class="nav-inner">
                <ul>
                    <li>
                        <a href="index.php"<?php currentPage("index"); ?>>Home</a>
                    </li>
                    <li>
                        <a href="page2.php"<?php currentPage("page2"); ?>>Page 2</a>
                    </li>
                    <li>
                        <a href="page3.php"<?php currentPage("page3"); ?>>Page 3</a>
                    </li>
                    <li>
                        <a href="page4.php"<?php currentPage("page4"); ?>>Page 4</a>
                    </li>
                    <li>
                        <a href="page5.php"<?php currentPage("page5"); ?>>Page 5</a>
                    </li>
                    <li>
                        <a href="page6.php"<?php currentPage("page6"); ?>>Page 6</a>
                    </li>
                </ul>
            </div>
        </div>
        
        
        
        这是第一种,也许是最丑陋的方法,但它确实有效。 您可以细化此代码,将其用作提示

        有关basename的更多信息:
        有关$\u服务器的更多信息:

        发布您的nav.php代码发布您的nav.php代码这实际上看起来不错,但由于某些原因,这对我不起作用:/I我通过将li中的php代码更改为。。。。。我想因为li已经有了样式,所以它没有被这个新类覆盖。这看起来很好,但出于某种原因这对我不起作用:/I我通过将li中的php代码更改为。。。。。我认为,由于李的已经有样式,它没有被这个新类覆盖。