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 相关文章推荐
一个好用的分页函数
Nov 16 PHP
Php Cookie的一个使用注意点
Nov 08 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
PHP单例模式详细介绍
Jul 01 PHP
php模板引擎技术简单实现
Mar 15 PHP
php中的单引号、双引号和转义字符详解
Feb 16 PHP
PHP实现的登录页面信息提示功能示例
Jul 24 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
PHP PDO数据库操作预处理与注意事项
Mar 16 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
php IP转换整形(ip2long)的详解
2013/06/06 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
js中有关IE版本检测
2012/01/04 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
js设置cookie过期及清除浏览器对应名称的cookie
2013/10/24 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
如何利用JSHint减少JavaScript的错误
2016/08/23 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
vue2.0多条件搜索组件使用详解
2020/03/26 Javascript
JS仿淘宝搜索框用户输入事件的实现
2017/06/19 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
将Emacs打造成强大的Python代码编辑工具
2015/11/20 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
python 快速把超大txt文件转存为csv的实例
2018/10/26 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
Python创建或生成列表的操作方法
2019/06/19 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
牵手50台湾:专为黄金岁月的单身人士而设的交友网站
2021/02/18 全球购物
最新远光软件笔试题面试题内容
2013/11/08 面试题
二手房购房协议书范本
2014/10/05 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
幼儿园感谢信
2015/01/21 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python
python Django框架快速入门教程(后台管理)
2021/07/21 Python