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是否存在,存在返回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基本信息相关推荐
- thinkphp5.0学习(九):TP5.0视图和模板
原文地址:http://blog.csdn.net/fight_tianer/article/details/78602711 一.视图 1.加载页面 1.继承系统控制器类return $this-& ...
- Thinkphp5.0 阿里云OSS扩展类上传示例(轮子)
转载请声明出处! 环境必须:阿里云OSS php SDK 阿里云OSS php SDK地址:https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g ...
- VRTK4.0学习(六):给控制器添加激光射线
前言 OpenVR Controller -基于虚拟现实的控制器,可通过SteamVR与OpenVR标准配合使用,例如HTC Vive或Oculus Touch控制器. Trackpad -OpenV ...
- 第六周项目六——复数模板类
可以通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时指定的实际类型. (1)要求类成员函数在类外定义. (2)在此基础上,再实现减法.乘法和除法 你可以 ...
- SpringMVC请求后台地址URL没有.*的几种实现方式
今天做项目,由于项目是通过扫二维码进入,二维码存放的地址不希望有 .do,而是http:xxxx:8080/xxx/yyy/zzz的格式(zzz为参数),但是项目其它请求url后面都必须要有.do,想 ...
- thinkphp5基本的一些操作/API友好/获取请求信息(Request)/判断请求类型(GET...)/验证参数数据(Validate)/连接数据库/原生sql语句查询
文章目录 一.API友好 1.举两个thinkphp5关于API友好的例子 (1)数据输出 (2)错误调试Trace 二.获取请求信息(Request) 1.获取URL信息 2.获取 模块/控制器/操 ...
- ThinkPHP5.0教程学习06:TP5 数据库与模型操作
学习教程来源于: php中文网 ThinkPHP5 视频教程 ThinkPHP5.0完全开发手册 连接器与查询构造器 TP5采用的是惰性连接,故而仅在查询时才会连接到数据库 TP5的数据库操作对底层进 ...
- php 追查框架生命周期,thinkPHP5.0框架应用请求生命周期分析
本文实例讲述了thinkPHP5.0框架应用请求生命周期.分享给大家供大家参考,具体如下: 本篇内容我们对ThinkPHP5.0的应用请求的生命周期做大致的介绍,以便于开发者了解整个执行流程. 1.入 ...
- PyTorch学习笔记(六)——Sequential类、参数管理与GPU
系列文章\text{\bf 系列文章}系列文章 PyTorch学习笔记(一)--Tensor的基础语法 PyTorch学习笔记(二)--自动微分 PyTorch学习笔记(三)--Dataset和Dat ...
最新文章
- Java多种方式读文件,追加文件内容,等对文件的各种操作
- Linux~Sh脚本一点自己的总结
- .sh文件是什么语言_shell命令在C语言程序中的调用
- java2实用教程第5版第九章_java2实用教程(例子代码)第4版第九章.doc
- 宝塔面板 Windows 2012 R2 使用指南(在更新中)
- java arraylist length,在Java中调整ArrayList的大小时,无法理解溢出的可能性
- 空间波(space wave)
- 获取类路径的方法之一
- dedecms织梦让channelartlist标签支持currentstyle属性
- 测试用例和缺陷报告模板
- 光谱共焦的测量原理及厚度测量模式
- lsd 特征点匹配代码_直线匹配-LSD算法
- python坦克大战游戏_python实现坦克大战游戏
- mysql sql patindex_深入SQL截取字符串(substring与patindex)的详解
- 计算机大赛鼓励语录,比赛前的鼓励的话
- 百度百科创建个人词条怎么写?
- JeecgBoot 2.4.2 积木报表版本发布,基于SpringBoot的低代码平台
- Unity之SkinMeshRenderer带骨骼的人体模型换装
- idea的maven中出现target文件不完整或者“class not found“ 或 “test not fount“
- js:Vue.js自定义指令实现scroll下滑滚动翻页
热门文章
- 李明洋HFSS教程---T型波导内场分析和优化
- 小福利,常见加密算法
- Python星星代码
- 本地搭建chatgpt
- python 股票数据下载_如何下载股票历史数据?
- 【Android】Java多功能通讯录APP项目设计
- 变天了,考PMP一定要准备好这3本教材!外加第七版PMBOK指南 解读送上
- tRNA-m5C转运RNA(tRNA)修饰5-甲基胞嘧啶(m5C)|tRNA修饰m1Am2A (2-methyladenosine)
- JavaScript基础视频教程总结(091-100章)
- 【ARM】Keil_v5安装注册、CPU添加以及版本向下兼容问题解决