zoukankan      html  css  js  c++  java
  • 一个改变url格式的类

    class Prourl {
            /**
             * URL路由,转为PATHINFO的格式
             */ 
            static function parseUrl(){
                if (isset($_SERVER['PATH_INFO'])){
                           //获取 pathinfo
                    $pathinfo = explode('/', trim($_SERVER['PATH_INFO'], "/"));  //使用 / 将当前路径分割为数组
                
                           // 获取 control
                           $_GET['m'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');   //如果第一个参数不为空则为第一个,否则跳到index
    
                           array_shift($pathinfo); //将数组开头的单元移出数组  array_shift()函数删除数组中的第一个元素,并返回被删除元素的值。
                          
                           // 获取 action
                           $_GET['a'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');
                    array_shift($pathinfo); //再将将数组开头的单元移出数组 
    
                    for($i=0; $i<count($pathinfo); $i+=2){
                        $_GET[$pathinfo[$i]]=$pathinfo[$i+1];
                    }
                
                }else{    
                    $_GET["m"]= (!empty($_GET['m']) ? $_GET['m']: 'index');    //默认是index模块
                    $_GET["a"]= (!empty($_GET['a']) ? $_GET['a'] : 'index');   //默认是index动作
        
                    if($_SERVER["QUERY_STRING"]){
                        $m=$_GET["m"];
                        unset($_GET["m"]);  //去除数组中的m
                        $a=$_GET["a"];
                        unset($_GET["a"]);  //去除数组中的a
                        $query=http_build_query($_GET);   //形成0=foo&1=bar&2=baz&3=boom&cow=milk格式
                        //组成新的URL
                        $url=$_SERVER["SCRIPT_NAME"]."/{$m}/{$a}/".str_replace(array("&","="), "/", $query);
                        header("Location:".$url);
                    }    
                }
            }
        }

    复习几个常见的函数  

    1. explode(separator,string,limit)       separator 用什么分割   string  需要分割的字符串  
    返回的是一个数组
    2.array_shift(array)   删除数组的第一个元素,并且返回被删的元素
    3.http_build_query      生成urlencode格式
     
    这种类的好处就是可以有利于seo,使爬虫更加容易识别。
  • 相关阅读:
    【C++17】std::optional

    【GDB 】GDB基本命令
    【二叉树系列 | 01】二叉树遍历
    【coredump | 01】coredump的阐述
    【C++ Template | 06】std::enable_if和SFINAE
    std::dclval 使用教程
    系统设计实践(03)- Instagram社交服务
    系统设计实践(02)- 文本存储服务
    系统设计实践(01)
  • 原文地址:https://www.cnblogs.com/Bl4ckc0de/p/3598917.html
Copyright © 2011-2022 走看看