一、系统类(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.参数绑定可以设置默认值