【问题标题】:Dynamically change menu item in PHP在 PHP 中动态更改菜单项
【发布时间】:2011-11-28 04:40:53
【问题描述】:

我对 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 时,我收到一条错误消息: 第 2 行:未定义索引:REQUEST_URI

我阅读了有关 REQUEST_URI 的信息,但不明白为什么它不起作用。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 你运行的是什么网络服务器?阿帕奇?
  • 是的,我使用的是 Apache 服务器

标签: php


【解决方案1】:

要检查可用的 $_SERVER 变量,您可以执行 &lt;?php print_r($_SERVER) ?&gt;

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

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

【讨论】:

  • 感谢您的回复。此链接似乎不再处于活动状态。
  • 很奇怪,它对我有用。这是来自源的 sn-p:if (!isset($_SERVER['REQUEST_URI'])) { $_SERVER['REQUEST_URI'] = substr($_SERVER['PHP_SELF'],1 ); if (isset($_SERVER['QUERY_STRING'])) { $_SERVER['REQUEST_URI'].='?'.$_SERVER['QUERY_STRING']; } }
  • 感谢 Marcin 提供代码 sn-p。我尝试时遇到 404 错误。
【解决方案2】:

我在这个网站上发现了另一个与我的问题类似的问答 How add class='active' to html menu with php

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

感谢贡献者。

【讨论】:

    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多