| 
 | 
 
ci钩子:可将path_info传值转为GET传值,并且method的参数也通过GET来传递 
用途:接收SEO友好的地址传值。 
PHP复制代码  
$hook['pre_controller']=function(){
    global $params,$RTR;
    if(!$params)return;
    $_GET+=$RTR->uri->ruri_to_assoc();
    $rel=new ReflectionMethod ($RTR->class,$RTR->method);
    $params=array();
    if($args=$rel->getParameters())
    {
        foreach($args as $arg)
        {
            if(isset($_GET[$arg->name]))
            {
                $params[$arg->name]=$_GET[$arg->name];
        }
    }
        }
        unset($cls,$rel);
};  复制代码 
 
例: 
class Demo extends CI_Controller 
{ 
    function ctrldemo($arg1) 
    { 
       echo 'arg1='.$arg1;                 
       print_r($_GET); 
    } 
} 
访问地址: 
/demo/ctrldemo/test/1/arg1/2/pn/1.html 
/demo/ctrldemo.html?test=1&arg1=2&pn=1 
输出: 
arg1=2 
array( 
  'test'=>1, 
  'arg1'=>2, 
  'pn'=>1 
) 
 
注:使用之后传统的method传值方式将不可用,下面地址将会报错 
/demo/ctrldemo/2 
不会得到输出: 
arg1=2 
必须要 
/demo/ctrldemo/arg1/2 
如果有多个参数(包括get参数)则arg1的顺序不一定要放在第一位 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |