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

1 获取URL信息

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

 

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

 

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

 

3 获取请求参数

 

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

 

3.1 session和 cookie

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

 

4 参数过滤

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

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

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

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

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

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

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

 5 变量修饰符

 

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

强制转换为浮点类型

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

 

 6 判断请求类型

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

 7 参数绑定

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

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

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

 

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

 

8 http请求的缓存

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

你可能感兴趣的:(tp5,学习)