• 技术文章 >php教程 >php手册

    php编写一个简单的路由类

    2016-06-13 12:10:42原创315
    类代码:

    复制代码 代码如下:


    class Router
    {
    public function getRouter($types = 1)
    {
    if ( isset($_SERVER['PATH_INFO']) )
    {
    $query_string = substr(str_replace(array('.html','.htm', '.asp', '//'), '',$_SERVER['PATH_INFO']),1);
    }
    else
    {
    $query_string = str_replace($_SERVER['SCRIPT_NAME'], '',$_SERVER['PHP_SELF']);
    }
    if ( $types == 1 )
    {
    // 第一种类型以/分隔
    $temp = explode('//m.sbmmt.com/m/', $query_string);
    }
    elseif ($types == 2)
    {
    $temp = explode('-', $query_string);
    }
    elseif ($types == 3)
    {
    return array('Controller'=>$_GET['controller']);
    }
    if ( empty($temp[0]) )
    {
    return array('Controller' => 'index','Operate' => 'index');
    }
    if ( empty($temp[1]) )
    {
    $temp[] = 'index';
    }
    // 去除空项
    foreach ($temp as $val)
    {
    if ($val)
    {
    $url[] = $val;
    }
    }
    list($controller, $operate) = $url;
    //有参数的情况
    $params = array();
    if ( count($url)>2 )
    {
    array_shift($url);
    array_shift($url);
    $params = $url;
    }
    return
    array(
    "Controller" => $controller,
    "Operate" => $operate,
    "params" => $params,
    );
    }
    }
    ?>


    调用方法:

    复制代码 代码如下:


    $url = new Router();
    $url->getRouter(1);
    print_r($url); //在这里可以看到各元素
    ?>

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:PHP学习之数组值的操作 下一篇:Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• PHP6的核心是对Unicode的内置支持• 不用数据库的多用户文件自由上传投票系统(1)_php基础• php根据用户语言跳转相应网页• php将csv文件导入到mysql数据库的方法,• php配合jquery实现增删操作
    1/1

    PHP中文网