$url = $_SERVER["REQUEST_URI"]; //$url = 123/index.php/web/index
$parse_url = parse_url($url);                        
$url_query = $parse_url["query"];
我的理解:$parse_url["query"];不是应该返回个null吗
可为什么会报 query 未定义啊 ?

解决方案 »

  1.   

    print_r($parse_url);  没看到query元素把。当然报为定义了。
    不过是Notice 级别通知。可屏蔽之。
      

  2.   

    print_r($parse_url);
    就可以看到null 就是未定义
      

  3.   


    $url = 'http://topic.csdn.net/u/20120528/10/ccd42483-9fb4-4da5-a3c5-c8c49f690563.html?56008';
    $pas = parse_url($url);
    print_r($pas); #Array ( [scheme] => http [host] => topic.csdn.net [path] => /u/20120528/10/ccd42483-9fb4-4da5-a3c5-c8c49f690563.html [query] => 56008 ) 
    #在数组中没有的元素,在调用时,都会显示未定义下标
    echo $pas['user']; #Notice: Undefined index: user
      

  4.   

    那么是不是就不能这样判断了呢,if $pas['user']不存在 {$url.=?page}
      

  5.   

    这样判断:
    if(isset($pas['user']) && $pas['user'])
      

  6.   

    parse_url如果某个字段不存在就没设置, 就是undefined。你可以print_r看一下,根本没有那些字段的定义。
      

  7.   

    if(!empty($pas['user']))
    {
    echo “有值”;
    }
    else
    {
    echo “没值”;
    }