1 获取URL信息
<?php //第一种 使用系统方法 $re = request(); //第二种 使用系统类 因为是单例模式所以不能直接new $res = \think\Request::instance(); dump($res); //第三种 引入 think\Controller;think\Request; 两个系统类 namespace app\admin\controller; use think\Controller; use think\Request; class Index extends Controller { public function test(Request $req) { //获取域名 echo $req->domain(); //除域名以外部分 包含?后面 echo $req->Url(); //admin.php/Index/test?dd=ddd //不含?后面参数 echo $req->baseUrl();//admin.php/Index/test //入口文件 echo $req->baseFile(); //获取pathinfo部分(除域名和?后面,中间部分) echo $req->pathinfo();//Index/test //同上 但不含后缀 echo $req->path(); //ROOT地址 echo $req->root(true); //获取header参数 获取头信息 echo $req->header('token'); }
2 设置/获取 模块/控制器/方法名称
<?php //获取模块 dump($req->module()); //获取控制器 dump($req->controller()); //获取方法名 dump($req->action());
3 获取请求参数
<?php //请求方法 dump($req->method()); //资源类型 dump($req->type()); //访问ip dump($req->ip()); //是否是ajax 请求 dump($req->isAjax()); //请求参数 dump($req->param()); //请求参数 仅包含nn dump($req->only(['aa','bb'])); //请求参数 排除aa dump($req->except(['bb']));
3.1 session和 cookie
<?php 获取SESSION变量 Request::instance()->session('user_id'); // 获取某个session变量 Request::instance()->session(); // 获取全部的session变量 使用助手函数实现: input('session.user_id'); input('session.'); 获取Cookie变量 Request::instance()->cookie('user_id'); // 获取某个cookie变量 Request::instance()->cookie(); // 获取全部的cookie变量 使用助手函数实现: input('cookie.user_id'); input('cookie.');
4 参数过滤
在表单里提交给自己然后判断有值时处理
全部过滤 可使用 input() 获取值
<?php //请求过滤 if(input()){ $req->filter(['strip_tags','htmlspecialchars','md5']);//过滤html代码 和把html代码转为实体 再进行md5加密 dump(input()); } return view('test');
针对某变量过滤 和 内置提供的Filter ID过滤 不能用input() 获取过滤后的值
<?php if(input()){ $name = $req->param('name','','htmlspecialchars'); //$password = $req->post('password','','md5'); 同样可针对 请求方法 $password = $req->param('password','','md5'); //使用 内置提供的Filter ID过滤 $email = $req->param('email','',FILTER_VALIDATE_EMAIL); dump($name.'---'.$password); } return view('test');
如果要使用inpu() 获取过滤值 必须过滤就用
<?php $name = input('name','','htmlspecialchars'); $password = input('password','','md5'); $email = input('email','',FILTER_VALIDATE_EMAIL); dump($name.'---'.$password.'----'.$email);
5 变量修饰符
修饰符 | 作用 |
---|---|
s | 强制转换为字符串类型 |
d | 强制转换为整型类型 |
b | 强制转换为布尔类型 |
a | 强制转换为数组类型 |
f | 强制转换为浮点类型 |
<?php //强制转化为字符串 dump(input('name/s')); //强制转化为整型 dump(input('name/d')); //强制转化为布尔类型 dump(input('name/b')); //强制转化为数组 dump(input('name/a')); //强制转为浮点型 dump(input('name/f'));
6 判断请求类型
<? $re = Request::instance(); dump($re->isGet()); //判断是否是get请求 dump($re->isPost()); //是否是post请求 dump($re->isMobile()); //是否是手机端请求 //也可以用助手函数 dump(request()->isAjax()); //是否是ajax请求
7 参数绑定
注意: 当参数在方法里没有默认值时,必须要在url 里定义参数值 否则报错
参数绑定是把URL地址(或者路由地址)中的变量作为操作方法的参数直接传入
无需使用 input , get ,post .....等方法获取
<? public function paramBind($name='李刚',$age='19') { dump($name.'--今年:'.$age); }
8 http请求的缓存
<? public function cache() { $re = Request::instance(); $re->cache('cache','20'); // request()->cache('cache','20'); 或者使用助手函数 return '999'; }