一、系统类(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是否存在,存在返回truedump($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'));           //5dump($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.参数绑定可以设置默认值

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

  1. thinkphp5.0学习(九):TP5.0视图和模板

    原文地址:http://blog.csdn.net/fight_tianer/article/details/78602711 一.视图 1.加载页面 1.继承系统控制器类return $this-& ...

  2. Thinkphp5.0 阿里云OSS扩展类上传示例(轮子)

    转载请声明出处! 环境必须:阿里云OSS php SDK 阿里云OSS php SDK地址:https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g ...

  3. VRTK4.0学习(六):给控制器添加激光射线

    前言 OpenVR Controller -基于虚拟现实的控制器,可通过SteamVR与OpenVR标准配合使用,例如HTC Vive或Oculus Touch控制器. Trackpad -OpenV ...

  4. 第六周项目六——复数模板类

    可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时指定的实际类型.     (1)要求类成员函数在类外定义.     (2)在此基础上,再实现减法.乘法和除法     你可以 ...

  5. SpringMVC请求后台地址URL没有.*的几种实现方式

    今天做项目,由于项目是通过扫二维码进入,二维码存放的地址不希望有 .do,而是http:xxxx:8080/xxx/yyy/zzz的格式(zzz为参数),但是项目其它请求url后面都必须要有.do,想 ...

  6. thinkphp5基本的一些操作/API友好/获取请求信息(Request)/判断请求类型(GET...)/验证参数数据(Validate)/连接数据库/原生sql语句查询

    文章目录 一.API友好 1.举两个thinkphp5关于API友好的例子 (1)数据输出 (2)错误调试Trace 二.获取请求信息(Request) 1.获取URL信息 2.获取 模块/控制器/操 ...

  7. ThinkPHP5.0教程学习06:TP5 数据库与模型操作

    学习教程来源于: php中文网 ThinkPHP5 视频教程 ThinkPHP5.0完全开发手册 连接器与查询构造器 TP5采用的是惰性连接,故而仅在查询时才会连接到数据库 TP5的数据库操作对底层进 ...

  8. php 追查框架生命周期,thinkPHP5.0框架应用请求生命周期分析

    本文实例讲述了thinkPHP5.0框架应用请求生命周期.分享给大家供大家参考,具体如下: 本篇内容我们对ThinkPHP5.0的应用请求的生命周期做大致的介绍,以便于开发者了解整个执行流程. 1.入 ...

  9. PyTorch学习笔记(六)——Sequential类、参数管理与GPU

    系列文章\text{\bf 系列文章}系列文章 PyTorch学习笔记(一)--Tensor的基础语法 PyTorch学习笔记(二)--自动微分 PyTorch学习笔记(三)--Dataset和Dat ...

最新文章

  1. Java多种方式读文件,追加文件内容,等对文件的各种操作
  2. Linux~Sh脚本一点自己的总结
  3. .sh文件是什么语言_shell命令在C语言程序中的调用
  4. java2实用教程第5版第九章_java2实用教程(例子代码)第4版第九章.doc
  5. 宝塔面板 Windows 2012 R2 使用指南(在更新中)
  6. java arraylist length,在Java中调整ArrayList的大小时,无法理解溢出的可能性
  7. 空间波(space wave)
  8. 获取类路径的方法之一
  9. dedecms织梦让channelartlist标签支持currentstyle属性
  10. 测试用例和缺陷报告模板
  11. 光谱共焦的测量原理及厚度测量模式
  12. lsd 特征点匹配代码_直线匹配-LSD算法
  13. python坦克大战游戏_python实现坦克大战游戏
  14. mysql sql patindex_深入SQL截取字符串(substring与patindex)的详解
  15. 计算机大赛鼓励语录,比赛前的鼓励的话
  16. 百度百科创建个人词条怎么写?
  17. JeecgBoot 2.4.2 积木报表版本发布,基于SpringBoot的低代码平台
  18. Unity之SkinMeshRenderer带骨骼的人体模型换装
  19. idea的maven中出现target文件不完整或者“class not found“ 或 “test not fount“
  20. js:Vue.js自定义指令实现scroll下滑滚动翻页

热门文章

  1. 李明洋HFSS教程---T型波导内场分析和优化
  2. 小福利,常见加密算法
  3. Python星星代码
  4. 本地搭建chatgpt
  5. python 股票数据下载_如何下载股票历史数据?
  6. 【Android】Java多功能通讯录APP项目设计
  7. 变天了,考PMP一定要准备好这3本教材!外加第七版PMBOK指南 解读送上
  8. tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)
  9. JavaScript基础视频教程总结(091-100章)
  10. 【ARM】Keil_v5安装注册、CPU添加以及版本向下兼容问题解决