0

我需要“页面”链接才能检测用户是否在“页面”下拉菜单中包含的任何页面上。检测它们是否仅在 1 页上很容易,我需要将多个实例添加到“页面”项。希望这更有意义。

这是我所拥有的:

<li class='dropdown' id="menu1">
  <a class="dropdown-toggle" data-toggle="dropdown" href="#menu1">Pages</a>
    <ul class="dropdown-menu">
      <li>
        <a href="index.php">Home</a>
      </li>
      <li>
        <a href="about.php">About</a>
      </li>
    </ul>
</li>

JUST index.php 的代码示例如下:

<li <?php if (stripos($_SERVER['REQUEST_URI'],'index.php') !== false) {echo 'class="active"';} ?>>
    <a href="index.php">Home</a>
</li>

就像我之前说的,我需要在基本上一个 PHP 块中添加多个实例来检测 MORE THAN,如果用户只是在[filename] .php

希望这是有道理的。

4

2 回答 2

0

您必须将列表项放在一个数组中。然后循环它们以创建菜单。

$pages = array(
    'Home' => 'home.php',
    'About' => 'about.php'
);

<?php foreach ($pages as $name => $url): ?>
    <li <?php if (stripos($_SERVER['REQUEST_URI'], $url) !== false):
        echo 'class="active"';
    endif ?>>
        <a href="<?php echo $url?>"><?php echo $name?></a>
    </li>
<?php endforeach ?>

这将检查数组中的每个结果以查看它是否与 uri 匹配。如果是这样,它会将活动类添加到 li。

于 2012-07-04T15:43:50.713 回答
0

首先,您只需要提取页面名称,然后需要将其与可能的页面数组进行比较:

<?php if (in_array(preg_replace('|.*/(.+\.php).*|i','\\1',$_SERVER['REQUEST_URI']), array('index.php','about.php'))) {echo 'class="active"';}
于 2012-07-04T15:34:27.983 回答