PHP:捕获要在导航菜单中附加id的位置

PHP:捕获要在导航菜单中附加id的位置,php,strpos,php-5.4,Php,Strpos,Php 5.4,我使用这个PHP函数根据您所在的页面将id=“current”附加到我的导航菜单中 function get_current() { foreach(func_get_args() as $arg) { if (strpos($_SERVER['REQUEST_URI'], $arg) !== false) { echo 'id="current"'; } } } 简单HTML: <ul> <li

我使用这个PHP函数根据您所在的页面将
id=“current”
附加到我的导航菜单中

function get_current() {
    foreach(func_get_args() as $arg) {
        if (strpos($_SERVER['REQUEST_URI'], $arg) !== false) {
            echo 'id="current"';
        }
    }
}
简单HTML:

<ul>
    <li <?php get_current('') ?>><a>HOME</a></li>
    <li <?php get_current('page1.php') ?>><a>PAGE 1</a></li>
    <li <?php get_current('page2.php') ?>><a>PAGE 2</a></li>
    <li <?php get_current('page3.php') ?>><a>PAGE 3</a></li>
    <li <?php get_current('page4.php') ?>><a>PAGE 4</a></li>
</ul>
    >第1页 >第3页
    在你的情况下,我会这样解决:

    <?
    function get_current( $nav_page ) {
        $uri = $_SERVER['REQUEST_URI'];
        return ( $uri == $nav_page ) ? ' id="current" ' : '';
    }
    ?>
    
    及其附带的HTML:

    <li <?= get_current('/', '/index.php')?> > ... </li>
    
    HTML:

      >第1页 >第3页
      谢谢你的回复!!:-)我尝试了您的第一个解决方案(),但id=“current”不再附加到任何链接。。即使是page-x.php.typo:(…)甚至对于page-x.phpI,也在本地测试了上面的代码(第一个解决方案),并按预期工作。请在
      $uri=$\u服务器['REQUEST\u uri']之后立即检查
      $uri
      的值,使用
      var\u dump($uri)
      .var\u dump我得到了这样的结果:
      • HOME
      • page 1
      • page 2
      • page 3
      • 仅用于测试
        $uri
        的值。您可以添加
        print\r($\u服务器);退出()
        在文件开头,检查
        $\u服务器
        变量中的内容,尤其是
        请求URI
        function get_current() {
            $uri = $_SERVER['REQUEST_URI'];
            if ( in_array( $uri, func_get_args() ) )
                return ' id="current" ';
            return '';
        }
        
        <li <?= get_current('/', '/index.php')?> > ... </li>
        
        <?
        function get_current( $nav_page ) {
            $uri = $_SERVER['REQUEST_URI'];
            return is_rear_match( $uri, $nav_page ) ? ' id="current" ' : '';
        }
        
        function is_rear_math( $haystack, $needle ) {
            $rear = substr($haystack, -strlen($needle));
            return $rear !== false && $rear === $needle;        
        }
        ?>
        
        <ul>
            <li <?= get_current('/') ?> ><a>HOME</a></li>
            <li <?= get_current('/page1.php') ?> ><a>PAGE 1</a></li>
            <li <?= get_current('/page2.php') ?> ><a>PAGE 2</a></li>
            <li <?= get_current('/page3.php') ?> ><a>PAGE 3</a></li>
            <li <?= get_current('/page4.php') ?> ><a>PAGE 4</a></li>
        </ul>