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';
- }