111HD

知法犯法下载 php 简单路由实现丶一个站在Java后端设计之路的男青年个人博客网站

我们期待你的参与,把你看到的最新、最有趣、最好看的文章给大家一起分享。

知法犯法下载 php 简单路由实现丶一个站在Java后端设计之路的男青年个人博客网站

作者: http://www.sscpc8.com | 时间:2019-05-03

在PHP中,利用单一入口文件实现路径的访问,实现形如 http://localhost/project/index.php/module/method/param_key/param_val 的访问路由

module:模块名称(类)

method:模块方法

param_key:参数名称

param_val:参数值

一、新建项目 route

在 route 下新 index.php,代码如下

 ?php 
 error_reporting(0); 
 define(DIR_CONTROLLER, 'controller/'); // 定义控制器目录
 date_default_timezone_set("Asia/Shanghai"); 
 $_DocumentPath = $_SERVER['DOCUMENT_ROOT']; 
 $_RequestUri = $_SERVER['REQUEST_URI']; 
 $_UrlPath = $_RequestUri; 
 $_FilePath = __FILE__; 
 $_AppPath = str_replace($_DocumentPath, '', $_FilePath); //== \route\index.php 
 $_AppPathArr = explode(DIRECTORY_SEPARATOR, $_AppPath); 
 for ($i = 0; $i count($_AppPathArr); $i  ) { 
 $p = $_AppPathArr[$i]; 
 if ($p) { 
 $_UrlPath = preg_replace('/^\/'.$p.'\//', '/', $_UrlPath, 1); 
 $_UrlPath = preg_replace('/^\//', '', $_UrlPath, 1); 
 $_AppPathArr = explode("/", $_UrlPath); 
 $_AppPathArr_Count = count($_AppPathArr); 
 $arr_url = array( 
 'controller' = 'Index', 
 'method' = 'index', 
 'parms' = array() 
 $arr_url['controller'] = ucfirst($_AppPathArr[0]); // 模块名称知法犯法下载,首字母转为大写
 $arr_url['method'] = $_AppPathArr[1]; 
 // 获取参数
 if ($_AppPathArr_Count 2 and $_AppPathArr_Count % 2 != 0) { 
 //die('参数错误'); 
 } else { 
 for ($i = 2; $i $_AppPathArr_Count; $i =2) { 
 $arr_temp_hash = array(strtolower($_AppPathArr[$i])= $_AppPathArr[$i   1]); 
 $arr_url['parms'] = array_merge($arr_url['parms'], $arr_temp_hash); 
 $module_name = $arr_url['controller']; 
 $module_file = DIR_CONTROLLER.$module_name.'.class.php'; 
 $method_name = $arr_url['method']; 
 if (file_exists($module_file)) { 
 include $module_file; 
 $obj_module = new $module_name(); 
 if (!method_exists($obj_module, $method_name)) { 
 die("要调用的方法不存在"); 
 } else { 
 if (is_callable(array($obj_module, $method_name))) { 
 $obj_module - $method_name($arr_url['parms']); 
 } else { 
 die("定义的模块不存在"); 
? 

二、在项目目录下新建 controller 文件夹知法犯法下载,并在该文件夹下新建 Welcome.class.php 文件知法犯法下载,代码如下

 ?php 
 class Welcome{
 public function index($param){
 echo 'Hello World!';
? 

三、地址栏输入 http://localhost/route/index.php/welcome/index/

页面输出 “ Hello World! ”

嗨,亲爱的,她说,然后眨了眨眼。她低头看着自己在她的紫色磨砂包。等等,你刚才编辑的现实,没; T优。哦,我的上帝,我记得电话,来与您合作,但你只是做到了现在,没;吨吧?我可以告诉你的脸。

发表《知法犯法下载 php 简单路由实现丶一个站在Java后端设计之路的男青年个人博客网站》新评论

相关栏目

友情链接

相关介绍

在PHP中,利用单一入口文件实现路径的访问,实现形如 http://localhost/project/index.php/module/method/param_key/param_val 的访问路由 module:模块名称(类) method:模块方法 param_key:参数名称 para