tp5学习基础知识总结 4 请求REQUEST

1 获取URL信息

 
  1. <?php
  2. //第一种 使用系统方法
  3. $re = request();
  4. //第二种 使用系统类 因为是单例模式所以不能直接new
  5. $res = \think\Request::instance();
  6. dump($res);
  7.  
  8. //第三种 引入 think\Controller;think\Request; 两个系统类
  9. namespace app\admin\controller;
  10.  
  11. use think\Controller;
  12. use think\Request;
  13.  class Index extends Controller
  14. {
  15.  
  16. public function test(Request $req)
  17. {
  18. //获取域名
  19. echo $req->domain();
  20. //除域名以外部分 包含?后面  
  21. echo $req->Url();  //admin.php/Index/test?dd=ddd 
  22. //不含?后面参数
  23. echo $req->baseUrl();//admin.php/Index/test
  24. //入口文件
  25. echo $req->baseFile();
  26. //获取pathinfo部分(除域名和?后面,中间部分)
  27. echo $req->pathinfo();//Index/test
  28. //同上 但不含后缀
  29. echo $req->path();
  30. //ROOT地址
  31. echo $req->root(true);
  32. //获取header参数 获取头信息
  33. echo $req->header('token');
  34. }

 

2 设置/获取 模块/控制器/方法名称

 

 
  1. <?php
  2.     //获取模块
  3. dump($req->module());
  4. //获取控制器
  5. dump($req->controller());
  6. //获取方法名
  7. dump($req->action());

 

3 获取请求参数

 

 
  1. <?php
  2.     //请求方法
  3.     dump($req->method());
  4.     //资源类型
  5.     dump($req->type());
  6.     //访问ip
  7.     dump($req->ip());
  8.     //是否是ajax 请求
  9.     dump($req->isAjax());
  10.     //请求参数
  11.     dump($req->param());
  12.     //请求参数 仅包含nn
  13.     dump($req->only(['aa','bb']));
  14.     //请求参数 排除aa
  15.     dump($req->except(['bb']));

 

3.1 session和 cookie

 
  1. <?php
  2. 获取SESSION变量
  3. Request::instance()->session('user_id'); // 获取某个session变量
  4. Request::instance()->session(); // 获取全部的session变量
  5.  
  6. 使用助手函数实现:
  7. input('session.user_id');
  8. input('session.');
  9.  
  10. 获取Cookie变量
  11. Request::instance()->cookie('user_id'); // 获取某个cookie变量
  12. Request::instance()->cookie(); // 获取全部的cookie变量
  13.  
  14. 使用助手函数实现:
  15. input('cookie.user_id');
  16. input('cookie.');

 

4 参数过滤

 在表单里提交给自己然后判断有值时处理

 全部过滤 可使用 input() 获取值

 
  1. <?php
  2. //请求过滤
  3.         if(input()){
  4.                   
  5.          $req->filter(['strip_tags','htmlspecialchars','md5']);//过滤html代码 和把html代码转为实体 再进行md5加密
  6.         
  7.             dump(input());
  8.         }
  9.         return view('test');

 针对某变量过滤 和 内置提供的Filter ID过滤  不能用input() 获取过滤后的值  

 
  1. <?php
  2. if(input()){
  3.      $name = $req->param('name','','htmlspecialchars');
  4.     
  5.      //$password = $req->post('password','','md5');  同样可针对 请求方法
  6.      $password = $req->param('password','','md5');
  7.     
  8.      //使用  内置提供的Filter ID过滤
  9.         $email = $req->param('email','',FILTER_VALIDATE_EMAIL);
  10.         
  11.         dump($name.'---'.$password);
  12. }
  13. return view('test');

 如果要使用inpu() 获取过滤值  必须过滤就用

 
  1. <?php
  2.  $name = input('name','','htmlspecialchars');
  3.  $password = input('password','','md5');
  4.  $email = input('email','',FILTER_VALIDATE_EMAIL);
  5.  dump($name.'---'.$password.'----'.$email);

 5 变量修饰符

 

修饰符作用
s强制转换为字符串类型
d强制转换为整型类型
b强制转换为布尔类型
a强制转换为数组类型
f

强制转换为浮点类型

 
  1. <?php
  2. //强制转化为字符串
  3. dump(input('name/s'));
  4.  
  5. //强制转化为整型
  6. dump(input('name/d'));
  7.  
  8. //强制转化为布尔类型
  9. dump(input('name/b'));
  10.  
  11. //强制转化为数组
  12. dump(input('name/a'));
  13.  
  14. //强制转为浮点型
  15. dump(input('name/f'));

 

 6 判断请求类型

 
  1. <?
  2. $re = Request::instance();
  3. dump($re->isGet());        //判断是否是get请求
  4. dump($re->isPost());       //是否是post请求
  5. dump($re->isMobile());     //是否是手机端请求
  6. //也可以用助手函数
  7. dump(request()->isAjax()); //是否是ajax请求

 7 参数绑定

注意: 当参数在方法里没有默认值时,必须要在url 里定义参数值 否则报错

 参数绑定是把URL地址(或者路由地址)中的变量作为操作方法的参数直接传入

无需使用 input , get  ,post .....等方法获取

 

 
  1. <?
  2.     public function paramBind($name='李刚',$age='19')
  3. {
  4. dump($name.'--今年:'.$age);
  5. }

 

8 http请求的缓存

 
  1. <?
  2.     public function cache()
  3. {
  4. $re = Request::instance();
  5. $re->cache('cache','20');
  6.  
  7. //  request()->cache('cache','20'); 或者使用助手函数
  8. return '999';
  9. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值