Php 在url中查找父目录并与导航url进行比较

Php 在url中查找父目录并与导航url进行比较,php,jquery,url,navigation,Php,Jquery,Url,Navigation,基本上,我有一个导航菜单,目前如果我去一个网页上的网站,它会添加'当前'类的导航菜单项,所以我可以改变它的风格。像这样: jQuery(document).ready(function($){ var path = window.location; $('#nav a[href="'+path+'"]').addClass('current'); }); 我想扩展它以包括它下面的任何页面。我看到一些帖子解释了你是怎么做的,但似乎对我没什么用。url相当长,站点严重依赖url中的

基本上,我有一个导航菜单,目前如果我去一个网页上的网站,它会添加'当前'类的导航菜单项,所以我可以改变它的风格。像这样:

jQuery(document).ready(function($){
    var path = window.location;
    $('#nav a[href="'+path+'"]').addClass('current');
});
我想扩展它以包括它下面的任何页面。我看到一些帖子解释了你是怎么做的,但似乎对我没什么用。url相当长,站点严重依赖url中的参数,因此类型url可能是example.com/path1/path2/?id=9238293&name=test


不确定jquery是否是最好的方法?如果可能的话,也可以在PHP中使用

您可以在PHP中使用:

<?php
       //$url =  'http://example.com/path1/path2/?id=9238293&name=test';
       $url = $_POST['path'];

       //REMOVE THE LAST PARAMETER IN URL ?id=9238293&name=test';
       $paths = explode('?',$url);

       $paths = count($paths) ? $paths[0] : $paths; //if have parameter or not

       $paths = explode('/', $paths); //SEPARATE THE URL
       if (!$paths[count($paths)-1]){
         unset($paths[count($paths)-1]); //VERIFY IF THE URL ENDS WITH '/'
       }

       $count = count($paths);
       //THEN YOU HAVE
       //YOUR CURRENT PAGE
       //print "Current page: ".$paths[$count-1];
       //print "Mother page: ".$paths[$count-2];
       //THEN YOU CAN COMPARE THE MOTHER PAGE WITH ONE EXISTING MENU PAGE

       //IN YOUR EXAMPLE YOU CAN GO:
       $return = array();
       $site = "http://example.com/";
       $current = $paths[$count-1];
       $mother = $paths[$count-2];
       $return['current'] = $site.$mother.'/'.$current; //THAT WAY YOU STRIP THE PARAMETERS TO GET THIS ON YOUR JAVASCRIPT
       $return['mother'] = $site.$mother;
       print json_encode($return);exit;
?>

你怎么知道一个页面是否在另一个页面下?(通过查看url)如何构建菜单?它是用PHP构建的还是仅仅是一个静态的html块?你能展示你的代码吗?嗨,谢谢,这很有意义,但是有点和“你的php脚本url”混淆了。你是说我做了一个include_一次似乎阻止了页面加载,虽然没有抛出任何明显的错误。我不明白你说了什么!“你是说我做了一次include_似乎阻止了页面加载,但没有抛出任何明显的错误”这句话是什么意思。呵呵
<script>
    jQuery(document).ready(function($){
        var path = window.location;
        //very important!
        path = path.toString();
        $.post('YOUR PHP SCRIPT URL',{path:path},function(data){
                $('#nav a[href="'+data.current+'"]').addClass('current');
                $('#nav a[href="'+data.mother+'"]').addClass('current');
        },'json');      
    });
</script>