批改状态:合格
老师批语:你想一直停留在1+1吗
<?php// 查询GET字符串//如:http://127.0.0.7/route.php?action=edit&id=10&name=admin//方法一:if($_GET):vprintf('?action=%s&id=%s&name=%s',$_GET);endif;echo '<hr>';//方法二,//中文:查询_字符串echo $_SERVER['QUERY_STRING'];echo '<hr>';//查询路径参数//如:http://127.0.0.7/route.php/action/edit/id/10/name/admin//方法:PATH_INFO(路径_信息)echo $_SERVER['PATH_INFO'];echo '<hr>';//path_info()函数。跟路径变量不同,返回的是路径信息不是变量print_r(pathinfo('0514/route.php'));echo '<hr>';//$_SERVER['REQUEST_URI'] 统一资源定位符(可以是GET,也可以PATH_INFO;echo "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];echo '<hr>';//http://域名/控制器/方法/参数/值/.....(这里要特别注意:控制器名称和类名称对应。方法名称和类中方法名称也是对应的)class Action{public $id;public $name;public function edit($id,$name){$this->id = $id;$this->name = $name;}}//1,过滤空数组arra_filter//array_values() 返回 input 数组中所有的值并给其建立数字索引$pathinfo=array_filter(array_filter(explode('/',$_SERVER['PATH_INFO'])));//print_r($pathinfo);//,2,解析控制器 。初始数据//$user=$pathinfo['0'];$user=ucfirst(array_shift($pathinfo));//ucfirst首字母大写//echo $user;//3,解析方法同上$edit=array_shift($pathinfo);//echo $edit;//parse_str — 将字符串解析成多个变量//,4,解析参数 //如果是PATH_INF这里改掉就可以了parse_str($_SERVER['PATH_INFO'],$params);//print_r($params);//5,调用控制器==>已经解析到(2方法)$user= new $user();//调用方法==>已经解析到(3方法),传参==>(4参数)$user->$edit(...array_values($params));echo $user->id;echo $user->name;
<?phpclass Action{public $id;public $name;public function edit($id,$name){$this->id = $id;$this->name = $name;}}//1,过滤空数组$pathinfo=array_filter(array_filter(explode('/',$_SERVER['PATH_INFO'])));//,2,解析控制器 。初始数据$user=ucfirst(array_shift($pathinfo));//ucfirst首字母大写//3,解析方法同上$edit=array_shift($pathinfo);//,4,解析参数parse_str($_SERVER['PATH_INFO'],$params);//print_r($params);//5,调用控制器$user= new $user();//传入过滤空数组的数组$user->$edit(...array_values($pathinfo));echo $user->id;echo $user->name;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号