初识URL路由,初步认识php框架的路由简单例子,便于更好深入理解

对于如何实现url访问php文件某个类的的方法,例如tp5框架路由访问,http://demo.php.com/index.php/test/read,

test是模块,read方法。index.php下面是代码:

<?php 
//访问url http://demo.php.com/index.php/test/read
$uri = explode('/', parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));//解析url,并且转为数组
//var_dump($uri);
$class = $uri[2];//默认index.php入口,所以选择2
$path = '/'.$class.'.class.php';
if(file_exists($path)) {//判断文件是否存在
    require $path;
    $object = new $class();//实例化
    $action = !empty($uri[3])?$uri[3] : 'index';//判断是数组否存在
    if(method_exists($object,$action)) {//判断该类方法是否存在
        $parameter = !empty($uri[4])?$uri[4] : 'null';
        call_user_func_array(array($object, $action), array($parameter)); //调用对象里的方法并传参,call_user_func_array调用回调函数
    } else {
        echo "{$class}模块下不存在{$action}方法";
    }
} else {
    echo "{$class}模块不存在";
}
test.class.php文件代码:
class test
{
    public function index()
    {
        echo 'hello,word!';
    }
    public function read()
    {
        $arr = array(
            '0'=>array('id'=>1,'name'=>'tim'),
            '1'=>array('id'=>2,'name'=>'jike'),
            '3'=>array('id'=>3,'name'=>'蔡虚坤')
        );
        var_dump($arr);
    }
}

  

 
 
文件结构如图:

关键用到的函数:
call_user_func_array()这个函数可以实现回调函数,有个函数
call_user_func()功能类似类似
call_user_func_array(array($object, $action), array($parameter))
$object 类的实例,$action类的方法 $parameter url的一些参数

 

转载于:https://www.cnblogs.com/yangshiyi/p/10998373.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值