您所在位置: 网站首页 / php路由与控制器分析.docx / 文档详情
php路由与控制器分析.docx 立即下载
2025-08-17
约4.3千字
约9页
0
13KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

php路由与控制器分析.docx

php路由与控制器分析.docx

预览

免费试读已结束,剩余 4 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

php路由与控制器分析

php路由与控制器分析路由是指分组从源到目的地时,决定端到端路径的网络范围的进程。下面是小编分享的php路由与控制器分析,一起来看一下吧。我们为什么要使用路由?原因1:一个更漂亮的URI1.URI的改进刚刚开始学PHP时,我们一定写过blog.php?id=1之类的URI,使用GET方式获取参数。这样的URI有两个缺点,一是容易被SQL注射攻击,二是维护性可读性差,大家可以比较下面两种URI哪一种更具备可读性。www.xxxxxx.com/blog.php?id=1上面URI是我们初学PHP最常用的。www.xxxxxx.com/blog/1这种URI是目前最流行的URI,举个例子,比如很多读书类,电影类网站,都使用了这样的URI,这样的URI要比index.php?a=1&b=2&c=3&d=4....要简洁很多。2.实现方法在WEB项目的根目录下写一个.htaccess文件RewriteEngineOnRewriteRule^([a-zA-Z0-9/]*)$index.php/$1重写规则,让域名后面的字符串直接做为一个参数传入index.php,这样index.php就成为了你整个WEB应用的中心,定义了“请求和响应的.映射”。原因2:单一入口机制的易维护性1.路由数组一个PHP初学者,刚开始做项目,项目做着做着规模做大了,常常这个PHP页面给另一个PHP页面用GET方法传值,有时传的值还不止一个,时间一久,你的WEB项目,N个PHP页面宛如一个复杂的蜘蛛网,让你难以维护。一旦有修改,会涉及很多PHP文件,工作量很大。MVC的单一入口机制可以解决维护难的问题,路由就是一套映射,可以让你一个URI对应一个方法。$route=[''=>'IndexController@Index','blog'=>'BlogController@Show','blog/{id}/{name}'=>'BlogController@Show',];2.获取参数$path=$_SERVER['PATH_INFO'];$path=ltrim($path,'/');echo$path.PHP_EOL;我们在浏览器里输入:www.mysite.com/blog/1后,path变量为/blog/1。使用ltrim函数删除左边的斜杠,然后使用explode把字符串拆解成数组。$path_arr=explode('/',$path);核心代码如下:if(isset($_SERVER['PATH_INFO'])){$path=$_SERVER['PATH_INFO'];$path=ltrim($path,'/');$path_arr=explode('/',$path);}if(isset($path_arr[0])){$key=$path_arr[0];unset($path_arr[0]);}else{$key='';}if(isset($path_arr[1])){$parameters=array_values($path_arr);}if(isset($route[$key])){$arr=explode('@',$route[$key]);$controller=new$arr[0];$action=$arr[1];if(isset($parameters)){$controller->$action($parameters);}else{$controller->$action();}}else{require'error.html.php';}unset函数可以销毁数组中key和value,但是并不会重建索引,所以path_arr[0]是要调用的控制器类和方法名,path_arr[1]或者path_arr[1..N]就作为传入方法的参数。重定向和错误页面是WEB系统中最常见的,如果不用路由机制,你可能要没完没了的重复写重定向或者错误页面的显示或者跳转代码,有了路由,只需要一句话就可以完成。原因3:减少资源的消耗MVC采用了控制器(controller)来响应请求(request),每次请求来时,应该在指定的一个PHP文件中初始化这个控制器,而不是分别在不同的PHP文件中做初始化工作,这样可以减少资源的消耗。是不是一定要用控制器?方案1:不用控制器我们现在路由数组里添加一项,value不是一个字符串,而是一个匿名函数
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

php路由与控制器分析

文档大小:13KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用