用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

CodeIgniter框架的URL映射 根据 url 地址来确定调用合适的方法

2014-12-04 作者: php源代码大全举报

[php]代码库

<?php
/**
 * 框架主入口文件,所有的页面请求均定为到该页面,并根据 url 地址来确定调用合适的方法并显示输出
 */

define('APPPATH', '');

// 自动加载所需的类 
require('core/Common.php');
// 加载 core/URI.php 类
$URI =& load_class('URI');
// 加载 core/Router.php 类
$RTR =& load_class('Router');
// 调用 Router.php 类的 set_routing() 方法,抽取路由信息
$RTR->set_routing();

// 抽取路由中的 class 名与 method 名
$class = $RTR->fetch_class();
$method = $RTR->fetch_method();

// 加载 core/Controller.php 类
require('core/Controller.php');

function &get_instance() {
	return CI_Controller::get_instance();
}

// 根据 class 名加载控制器
require('controllers/'.$class.'.php');

// new 一个控制器的对象,$class 就是控制器的名
$CI = new $class();

/*
echo '<pre>';
print_r( $URI->rsegments );
print_r(array(&$CI, $method));
print_r(array_slice($URI->rsegments, 2));
echo '</pre>';
*/
call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 1));
//call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2));











-----------------------
Class ClassA   
{   
	function bc($b, $c) {   
		 $bc = $b + $c;   
	echo $bc;   
	}   
}   
call_user_func_array(array('ClassA','bc'), array("111", "222"));   
  
//显示 333   
Array
(
    [0] => welcome Object
        (
            [uri] => CI_URI Object
                (
                    [segments] => Array
                        (
                            [0] => welcome
                            [1] => nowamagic
                        )

                    [uri_string] => welcome/nowamagic
                    [rsegments] => Array
                        (
                            [0] => welcome
                            [1] => nowamagic
                        )

                )

            [router] => CI_Router Object
                (
                    [uri] => CI_URI Object
                        (
                            [segments] => Array
                                (
                                    [0] => welcome
                                    [1] => nowamagic
                                )

                            [uri_string] => welcome/nowamagic
                            [rsegments] => Array
                                (
                                    [0] => welcome
                                    [1] => nowamagic
                                )

                        )

                    [routes] => Array
                        (
                            [default_controller] => home
                            [welcome/nowamagic] => welcome/nowamagic
                        )

                    [class] => welcome
                    [method] => nowamagic
                    [default_controller] => home
                )

            [load] => CI_Loader Object
                (
                    [_ci_model_paths:protected] => Array
                        (
                            [0] => 
                        )

                    [_ci_models:protected] => Array
                        (
                        )

                )

        )

    [1] => nowamagic
)



网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...