php关于路由,PHP URL路由类实例
$APP_PATH= str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__);
$SE_STRING=str_replace($APP_PATH, '', $_SERVER['REQUEST_URI']); //计算出index.php后面的字段 index.php/controller/methon/id/3
$SE_STRING=trim($SE_STRING,'/');
//echo $SE_STRING.'
';
//这里需要对$SE_STRING进行过滤处理。
$ary_url=array(
'controller'=>'index',
'method'=>'index',
'pramers'=>array()
);
//var_dump($ary_url);
$ary_se=explode('/', $SE_STRING);
$se_count=count($ary_se);
//路由控制
if($se_count==1 and $ary_se[0]!='' ){
$ary_url['controller']=$ary_se[0];
}else if($se_count>1){//计算后面的参数,key-value
$ary_url['controller']=$ary_se[0];
$ary_url['method']=$ary_se[1];
if($se_count>2 and $se_count%2!=0){ //没有形成key-value形式
die('参数错误');
}else{
for($i=2;$i < $se_count;$i=$i+2){
$ary_kv_hash=array(strtolower($ary_se[$i])=>$ary_se[$i+1]);
$ary_url[pramers]=array_merge($ary_url[pramers],$ary_kv_hash);
}
}
}
$module_name=$ary_url['controller'];
$module_file=MODULE_DIR.$module_name.'.class.php';
//echo $module_file;
$method_name=$ary_url['method'];
if(file_exists($module_file)){
include($module_file);
$obj_module=new $module_name(); //实例化模块m
if(!method_exists($obj_module, $method_name)){
die('方法不存在');
}else{
if(is_callable(array($obj_module, $method_name))){ //该方法是否能被调用
//var_dump($ary_url[pramers]);
$get_return=$obj_module->$method_name($ary_url[pramers]); //执行a方法,并把key-value参数的数组传过去
if(!is_null($get_return)){ //返回值不为空
var_dump($get_return);
}
}else{
die('该方法不能被调用');
}
}
}
else
{
die('模块文件不存在');
}
?>
php关于路由,PHP URL路由类实例相关推荐
- Asp.Net MVC2.0 Url 路由入门---实例篇
本篇主要讲述Routing组件的作用,以及举几个实例来学习Asp.Net MVC2.0 Url路由技术. 接着上一篇开始讲,我们在Global.asax中注册一条路由后,我们的请求是怎么转到相应的Vi ...
- ASP.NET 4的Demo实践:URL路由改进支持
从.NET框架3.5 SP1开始,微软推出了ASP.NET路由支持,从而实现了特定资源的URL与其对应的Web服务器上的物理文件之间的彻底解耦.借助于ASP.NET路由支持,开发人员可以定义一组路由规 ...
- django URL路由基础
URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除此之外的任何URL都不被 ...
- 精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由
[索引页] [源码下载] 精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由, 自定义CacheProvider, 新增的表达式<%: expression %& ...
- Django基础-Web框架-URL路由
Django基础-Web框架-URL路由 一.Django基础–Web框架 MVC和MTV框架 MVC 把Web应用分为模型(M).视图(V).控制器(C)三层,他们之间以一种插件式的,松耦合的方式联 ...
- MVC中的URL路由(一)
URL路由系统通过对请求地址进行解析从而得到以目标Controller名称为核心的路由数据.Url路由系统最初是为了实现请求url与物理文件路径分离而建立的,MVC的Url Route是将Url地址与 ...
- Django中的url路由机制------学习mooc中《Python云端系统开发入门》
通过对url的定义转换.传参.命名等,找到相关的view,也就是它的处理函数. 路由就是关联url,及其处理函数关系的过程. 在django框架中,在settings.py文件中的ROOT_URLCO ...
- Werkzeug 之URL 路由
Werkzeug 之URL 路由 原文链接http://werkzeug.pocoo.org/docs/0.12/routing/ 当需要组合控制器和视图函数时,我们需要一个调度器来实现.一个简单的实 ...
- 13.Django之url路由系统初探(一)
一.什么是django中的url路由系统? django中的url路由系统的本质就是简历某个URL与某个视图(view)函数的对应(映射表)关系表,用下面这种特定的方式来告诉django这个web框架 ...
最新文章
- 微服务架构如何保证安全性?
- 从Web借鉴UI设计
- Qt消息机制与window程序消息的对比分析
- Myeclipse快捷键总结大全
- SQL开发中容易忽视的一些小地方( 三)
- 采用存储复制方式同步数据,实现数据库安全升级
- 想要成为真正优秀的程序员是不是真的很难?
- 服务发现与负载均衡traefik ingress
- 新建android模拟器无法拨号 真机可以拨号,自己想弄个手机拨号器,可是在模拟器上没有反应,能帮帮忙吗?...
- centos下不重装php——给PHP添加新扩展库
- java项目目录_Java项目目录解释
- IDEA生成SerialVersionUID
- c语言数据结构与算法参考文献,数据结构论文参考文献
- 【测试】11月11日的测试
- 计算机任务管理器无法响应,Win7系统电脑在任务管理器中关闭进程时总是未响应的解决方法...
- java 利用Future做超时任务处理
- CSS学习笔记 01、CSS3基础知识学习
- 初学三分法之考研路茫茫——早起看书
- pdf怎么合并在一起?
- ubuntu系统chrome代理问题
热门文章
- 十一、explain属性介绍
- android如何根据机顶盒区分用户,Android 上手机跟机顶盒应用开发的区别
- 不属于mysql常量的是_MySQL中,下面______常量的写法是不正确的?-智慧树MySQL数据库设计与应用章节答案...
- Java中Comparable和Comparator的区别
- 21day学通python epub_21天就让你掌握Python语言,《21天学通Python》PDF版送给你去学...
- ERROR: Could not find a version that satisfies the requirement trusted-host (from versions: none) ER
- python 删除代码中的注释,正则匹配
- mac u盘文件过大 拷贝不进去_使用mac时文件太大无法拷贝怎么办
- 计算机网络离不开光缆,九年级物理全册 第二十一章 第四节 越来越宽的信息之路习题课件 新人教版.ppt...
- nodejs+html转换pdf,Nodejs中使用phantom将html转为pdf或图片格式的方法