php加密路由,一个PHP路由的简易实现

前言

最近自己搭建了API,但又觉得目录下面丢一堆文件夹很没有技术含量,就参照了MVC框架的思想,实现了一个简易的PHP路由。

实现

因为该框架是配合API使用,所以没有采用完整的MVC架构,模式如下:example.com/index.php?controller/param1=xxx&param2=xxx

使用伪静态后:example.com/controller/param1=xxx&param2=xxx

其中,controller即为模块名,后面就是传递给模块的参数。

代码

index.php<?php

/*

* A PHP simple route framework

* Author: hiCasper

* http://blog.hicasper.com/post/58.html

*/

//环境变量

date_default_timezone_set("Asia/Shanghai");

define('APP_DIR', dirname(__FILE__));

define('APP_DEBUG', True);

//字符串过滤函数

function STR_FILTER($_STR, $MODE = 1) {

return preg_replace('/[^0-9a-zA-Z_=\/]+/', '', $_STR);

}

$Q_PARAM = array(

'controller' => 'default',

'data' => ''

);

//处理Query String

$Q_STRING = $_SERVER['QUERY_STRING'];

$Q_STRING = trim($Q_STRING, '/');

$Q_STRING = STR_FILTER($Q_STRING);

$Q_ARRAY = explode('/', $Q_STRING, 2);

$Q_COUNT = count($Q_ARRAY);

if ($Q_COUNT > 0 && $Q_ARRAY[0] != '') {

$Q_PARAM['controller'] = strtolower($Q_ARRAY[0]);

if ($Q_COUNT > 1) {

$Q_PARAM['data'] = $Q_ARRAY[1];

}

}

//判断模块是否存在并引入

$CON_FILE = 'modules/'.$Q_PARAM['controller'].'.php';

if (file_exists($CON_FILE)) {

require_once($CON_FILE);

}

else {

die('Controller not found'); //模块未找到

}

?>

目录结构ROOT

├─ index.php

├─ lib

│ └─ common.class.php

└─ modules

├─ controller1.php

└─ controller2.php

补充说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值