在PHP中动态更改菜单项


Dynamically change menu item in PHP

我对PHP了解甚少,但最近将我的静态网页上的菜单部分拆分为header.php,这行得通。现在我想改变活动页面的字体颜色。我在这里看到了一个例子,但无法使php代码工作。这是我的当前菜单在任何更改之前

<div id="menu">
     <ul>
         <li><a href="index.php">Home</a></li>
         <li><a href="lessons.php">Lessons</a></li>
         <li><a href="contact.php">Contact</a></li>
     </ul>
</div> <!-- end menu div -->

我看到这个代码在StackOverflow(修改为我的菜单)

<?php # Using REQUEST_URI
$currentpage = $_SERVER['REQUEST_URI'];?>
<div class="nav">
    <div class="tab
         <?php
             if(preg_match("/index/i", $currentpage)||($currentpage=="/"))
                 echo " currentpage";
         ?>"><a href="index.php">Home</a>
     </div>
     <div class="tab
         <?php
             if(preg_match("/about/i", $currentpage))
                 echo " currentpage";
         ?>"><a href="lessons.php">Lessons</a>
     </div>
     <div class="tab
         <?php
             if(preg_match("/contact/i", $currentpage))
                 echo " currentpage";
         ?>"><a href="contact.php">Contact</a>
     </div>
 </div> <!--nav-->

当我尝试在ul和/ul之间替换php时,我得到一个错误消息:索引:REQUEST_URI

我读了关于REQUEST_URI,但不明白为什么它不工作。

任何帮助都会很感激。谢谢。

检查可用的$_SERVER变量,您可以执行<?php print_r($_SERVER) ?>

我听说在IIS服务器上没有设置REQUEST_URI。如果是这种情况,您可以执行以下操作…

http://davidwalsh.name/iis-php-server-request_uri

我在这个网站上发现了另一个与我的问题类似的问题如何添加class='active'使用php创建HTML菜单

我使用了Toader Mihai Claudiu提供的示例,尽管最后一位作者更喜欢我尝试使用的方法。因为我是一个新手,有一个简单的网站给我的学生,我采用了Toader的方法,它奏效了。也许有一天我会尝试Marcin提供的建议