- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP实现一个简单url路由功能
PHP实现一个简单url路由功能
如果一个页面的内容呈现,需要根据url上传递的参数来进行渲染。很多时候可能是这样子写:/xx?c=xm=xt=..,而我们看到的url往往是这样子的(以新浪微游戏的咖啡恋人为例) /ilovecoffee….这种URL设计看上去比前一种更好一点:)
如果我们访问一下不存在的游戏应用,例如/ilovecoffee222,则会输出如下的错误提示:
?
后面匹配到的项,指向了某个php页面,然后根据参数获取要访问的游戏应用标识,后数据库或者缓存里查询该应用标识,如果不存在则输出错误提示,如果应用存在则加载游戏应用链接地址。
?
现在写一个php例子,假设我的ip为3,我加了一层名为router的路径,之后跟随的是 “/模块名/方法名/参数1的key/参数1的value/….”
类似这样的地址:
3/router/Hello/router/a/b/c/d/abc/index.html?id=3url=http:………………
也就是要调用Ha这个模块中的router方法,并传入url后面的参数/a/b/c/d/index………….
?
第一步,首先要在服务器的配置上对/router/路径进行拦截
?
调用某个文件夹目录下的index.php页面,假定现在所有模块使用单独的文件存放于class目录下,该目录与router平级,如下图所示:
?
?
第二步,路由分发器的实现(index.php)
1: !Doctype html
2: html
3: head
4: title路由测试~~/title
5: meta http-equiv=content-type content=text/html; charset=utf-8 /
6: /head
7: body
8:?
9: ?php
10:?
11: date_default_timezone_set(Asia/Shanghai);
12:?
13: define(MODULE_DIR, ../class/);
14:?
15:?
16: $_DocumentPath = $_SERVER[DOCUMENT_ROOT];
17: $_FilePath = __FILE__;
18: $_RequestUri = $_SERVER[REQUEST_URI];
19:?
20: $_AppPath = str_replace($_DocumentPath, , $_FilePath); //==\router\index.php
21: $_UrlPath = $_RequestUri; //==/router/hello/router/a/b/c/d/abc/index.html?id=3url=http:
22:?
23: $_AppPathArr = explode(DIRECTORY_SEPARATOR, $_AppPath);
24:?
25: /**
26: * 3/router/hello/router/a/b/c/d/abc/index.html?id=3url=http:
27: *
28: * /hello/router/a/b/c/d/abc/index.html?id=3url=http:
29: */
30:?
31: for ($i = 0; $i count($_AppPathArr); $i++) {
32: $p = $_AppPathArr[$i];
33: if ($p) {
34: $_UrlPath = preg_replace(/^\/.$p.\//, /, $_UrlPath, 1);
35: }
36: }
37:?
38: $_UrlPath = preg_replace(/^\//, , $_UrlPath, 1);
39:?
40: $_AppPathArr = explode(/, $_UrlPath);
41: $_AppPathArr_Count = count($_AppPathArr);
42:?
43: $arr_url = array(
44: controller = index,
45: method = index,
46: parms = array()
47: );
48:?
49: $arr_url[controller] = $_AppPathAr
您可能关注的文档
- 必威体育精装版版POSTFIX +courier-authlib+cyrus-sasl+Courier-IMAP +maildrop +postfixadmin 安装记录.doc
- 第一篇 五、元素与其化合物常考点归纳.doc
- 第一节 开发利用金属矿物与海水资源导学案.doc
- 第一至第七章主观题.doc
- 第一节 走进化学科学研究物质性质方法与程序-课时2 研究物质性质基本程序氯气性质.doc
- 《锋利的jQuery》练习代码及解释+各大门户网站特效代码及解释.docx
- 第一节 第一课时硅与二氧化硅.ppt
- 第一节 重要氧化剂与还原剂.ppt
- 第一节无机非金属材料主角练习.doc
- 02 反应热的计算.doc
文档评论(0)