thinkphp5.0学习(六): 获取请求类和URL基本信息
一、系统类(thinkphplibrary hink)
Config
Controller
Env
Route
Url
View
Request
二、系统方法(thinkphphelper.php)
- dump();格式化输出
- controller();调用控制器
- action();调用方法
- config();读取和设置配置文件
- url();生成url地址
- view();加载页面
- request();实例化Request类
三、如何获取请求类
1.系统方法
$request=request();
2.系统Request类
use thinkRequest;
//因为Request=Request类属于单例模式,所以不能直接new
$request=Request::instance();
dump($request);
3.系统Request类
use thinkRequest;
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.参数绑定可以设置默认值
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: thinkphp5.0学习(九):TP5.0视图和模板