编写一个简单的路由类

<?php
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('/', $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,
      );
     }
}
?>

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

转载于:https://www.cnblogs.com/wufoo/archive/2011/04/11/2012862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值