thinkphp5.0学习(六): 获取请求类和URL基本信息

一、系统类(thinkphp\library\think)

Config
Controller
Env
Route
Url
View
Request

二、系统方法(thinkphp\helper.php)

  • dump();格式化输出
  • controller();调用控制器
  • action();调用方法
  • config();读取和设置配置文件
  • url();生成url地址
  • view();加载页面
  • request();实例化Request类

三、如何获取请求类

1.系统方法

$request=request();

2.系统Request类

use think\Request;
//因为Request=Request类属于单例模式,所以不能直接new
$request=Request::instance();
dump($request);

3.系统Request类

use think\Request;
function index(Request $request) { 
    dump($request);
}

四.获取用户请求信息

// 获取url请求
public function getUrl(Request $request){
    // 1.获取域名
    dump($request->domain());
    // 2.获取url地址 除域名以外
    dump($request->url());
    // 3.获取入口文件
    dump($request->baseFile());
    // 4.获取PathInfo路径
    dump($request->pathinfo());
    // 5.获取pathInfo路径 无后缀
    dump($request->path());
    // 6.url地址伪静态后缀
    dump($request->ext());
}

伪静态就是将路径伪装成静态页面,让搜索引擎更好收录网站,方式别人知道网站真实开发语言

五.获取请求模块\控制器\方法

1.控制器

// 当前控制器
dump($request->controller());

2.方法

// 当前方法
dump($request->action());

3.模块

// 当前模块
dump($request->module());

六.获取请求相关类型

1.请求类型

    $request->mothod();

2.请求资源类型

    $request->type();

3.访问地址

    $request->ip();

4.是否ajax请求

    $request->isAjax();

5.获取所有地址栏参数

    $request->param();

6.获取特定字段

    $request->only(['name','age']);

7.剔除字段

    $request->except(['name','age']);

七.获取地址栏变量

1.判断是否存在

    // 判断get类型中id是否存在,存在返回true
    dump($request->has('id','get'));
    dump(input('?get.id'));

2.读取参数

    // 读取参数
    dump($request->get('id'));
    dump(input('get.id'));
    // 读取所有参数
    dump($request->get());
    dump(input('get.'));

3.可以读取数据类型

    get,post,delete,put,seeion,cookie,server,env,file等

    $request->get();
    $request->post();
    $request->put();
    $request->delete();
    $request->request();
    $request->session();
    $request->cookie();

八.变量过滤

1.作用

    防止恶意输入、防止sql注入

2.使用

1.全部数据进行过滤

    // 过滤一次
    // $request->filter('htmlspecialchars');
    // $request->filter('strip_tags');
    // 多重方法过滤
    $request->filter(['htmlspecialchars','strip_tags']); 

2.针对变量过滤

    // 设置单个变量过滤
    $request->get('name','','htmlspecialchars');

3.密码过滤之后加密

    $request->get('name','','htmlspecialchars,md5');

九.变量的排除和获取

1.获取

    $request->only('name');
    $request->only('name','get');
    $request->only(['name','pass'],'get');

2.排除

    $request->except(['name','pass'],get);
    $request->except(['name','pass']);
    $request->except('name');

十.变量修饰符

1.修饰变量的类型

    s 字符串
    d 整型
    b 布尔
    a 数组
    f 浮点型

2.使用

    dump(input('get.id/d'));/制转换整型
    dump(input('get.name/s'));/制转换成字符串

    dump($request->get('id/d'));

十一.更改变量

//地址栏访问http://www.tp.com/index/index/xiugai?id=5
// 修改变量
public function xiugai(Request $request){ 
    dump($request->get('id'));           //5
    dump($request->get(['id'=>20]));     //数组
    dump($request->get('id'));           //20
}

十二.请求类型判断

1.系统类

dump($request->isGet());
dump($request->isPost());
dump($request->isMobile());

2.助手函数

dump(request()->isGet());
dump(request()->isPost());
dump(request()->isMobile());

十三.模拟put、delete请求

1.使用

<form action="{:url('leixing')}" method="post">
    <p>
        User:<input type="text" name="name">
        <input type="hidden" name="_method" value="put">
    </p>
    <p>Pass:<input type="password" name="pass"></p>
    <p><input type="submit" value="提交"></p>
</form>

2.注意

1.表单类型必需是post
2.需要设置隐藏域传递模拟的请求类型

十四.模拟ajax请求和Pjax请求

1.模拟ajax请求

http://www.tp.com/index/index/leixing.html?_ajax=10

2.模拟Pjax请求

http://www.tp.com/index/index/leixing.html?_pjax=10

十五.伪静态

1.作用

  • url伪静态通常是为了满足更好的SEO效果
  • 为了网站的安全

2.如何使用

在配置文件中进行修改

// URL伪静态后缀
'url_html_suffix'        => 'html',

3.获取当前的伪静态后缀

$request->ext();

十六.参数绑定

1.使用

// 参数绑定
public function bangding($id,$names){ 
    var_dump($id);
    var_dump($names);
}
//http://www.tp.com/index/index/bangding?id=1&names=ttt
//http://www.tp.com/index/index/bangding/id/1/names/ttt

2.注意

1.参数绑定的格式,少于地址栏参数的个数
2.参数绑定的名字,必须和地址栏参数名字一一对应
3.参数绑定可以设置默认值

    原文作者:fight_tianer
    原文地址: https://blog.csdn.net/fight_tianer/article/details/78392474
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞