php编写一个简单的路由类


Posted in PHP onApril 13, 2011

类代码:

<?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); //在这里可以看到各元素 
?>
PHP 相关文章推荐
php和js交互一例-PHP教程,PHP应用
Jan 03 PHP
php 中文处理函数集合
Aug 27 PHP
基于php在各种web服务器的运行模式详解
Jun 03 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
php数组转换js数组操作及json_encode的用法详解
Oct 26 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
php提交表单发送邮件的方法
Mar 20 PHP
php字符串函数学习之strstr()
Mar 27 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
php curl发送请求实例方法
Aug 01 PHP
php 求质素(素数) 的实现代码
Apr 12 #PHP
php 5.3.5安装memcache注意事项小结
Apr 12 #PHP
php处理json时中文问题的解决方法
Apr 12 #PHP
php 面向对象的一个例子
Apr 12 #PHP
深入理解PHP原理之Session Gc的一个小概率Notice
Apr 12 #PHP
php表单提交问题的解决方法
Apr 12 #PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 #PHP
You might like
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
关于使用coreseek并为其做分页的介绍
2013/06/21 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
Google韩国首页图标动画效果
2007/08/26 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
jquery删除table当前行的实例代码
2016/10/07 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
解决IE7中使用jQuery动态操作name问题
2017/08/28 jQuery
JS库之wow.js使用方法
2017/09/14 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
python实现SMTP邮件发送功能
2020/06/16 Python
python基础梳理(一)(推荐)
2019/04/06 Python
Tensorflow 多线程设置方式
2020/02/06 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
菲律宾最大的网上花店和礼品店:PhilFlower.com
2018/02/09 全球购物
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
南京软件公司的.net程序员笔试题
2014/08/31 面试题
.NET方向面试题
2014/11/20 面试题
运动会稿件300字
2014/02/14 职场文书
开学典礼主持词
2014/03/19 职场文书
村庄环境整治方案
2014/05/15 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书