博主信息
博文 39
粉丝 0
评论 0
访问量 39960
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
PHP:路由的解析
原创
1938人浏览过

URL的路由解析(pathinfo方式)

  1. <?php
  2. // 路由原理
  3. // 目标:将URL中的控制器,方法解析出来,映射到对应的控制器类和方法上
  4. // http://phpedu11//0514/pathinforoute.php/user/getuser/id/50/name/peter
  5. // pathinfo方式
  6. // 控制器
  7. class userController{
  8. public function getUser($id,$name){
  9. return "您的ID ==>$id , 您的姓名==>$name";
  10. }
  11. }
  12. // 1.解析出PATHINFO
  13. $pathinfo = array_values( array_filter(explode('/', $_SERVER['PATH_INFO']))) ;
  14. // print_r($pathinfo);
  15. // 2.解析出控制器
  16. $Controller = ucfirst(array_shift($pathinfo) ). 'Controller';
  17. // 3.解析出方法
  18. $action = array_shift($pathinfo) ;
  19. // 4.解析出参数
  20. $params = [];
  21. for ($i=0;$i<count($pathinfo);$i+=2){
  22. // 检查当前pathinfo变量是否有值?
  23. if(isset($pathinfo[$i+1])){
  24. $params[$pathinfo[$i]] = $pathinfo[$i+1];
  25. }
  26. }
  27. // parse_str($_SERVER['QUERY_STRING'] , $params);
  28. // 5.调用控制器的方法
  29. $User = new $Controller();
  30. echo $User->$action(...array_values($params));

演示效果

总结:
1.URL含有丰富的路由信息。今天学习了如何把URL中的控制器、方法、参数等解析出来,再测试能否调用控制器的方法。
2.查询变量:获取URL中查询字符串(?后面的参数)
$_GET : 获取URL中?后面的参数,返回一个数组。要用implode()才能分解为查询字符串。
$_SERVER[‘QUERY_STRING’]:获取URL中?后面的参数,直接返回查询字符串。
3.路径变量:获取URL中pathinfo方式的字符串(含控制器、方法、参数、值等)。
$_SERVER[‘PATH_INFO’] : 返回一个pathinfo变量的字符串。
$_SERVER[‘QUERY_URI’]:返回一个接近完整的URL信息。
4.路由解析:
解析出PATHINFO->解析出控制器->解析出方法->解析出参数->调用控制器的方法
5.composer安装成功。
版本号:Composer version 1.10.6 2020-05-06 10:28:10

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:把这个理解 了, 后面学框架, 学路由就好办了
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学