tp5-4 请求REQUEST
0
无    2018-04-07 20:01:28    1718    0
fumingwan

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

tp5-3控制器初始化和跳转
文档导航