ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应

第6章 TP5.0 请求和响应

=====================================

上次复习

1、新建控制器

2、如何加载页面

1、系统函数

return view();

2、系统view类

$view=new View();

return $view->fetch();

3、通过Controller类

// 需要控制器继承系统类

return $this->fetch();

3、页面跳转

0、使用

必须继承系统控制器类

1、成功

$this->success();

2、失败

$this->error();

3、重定向

$this->redirect();

4、空控制器和空方法

=====================================

今日学习

1、系统类(C:\AppServ\www\tp5\thinkphp\library\think)

Config

Controller

Env

Route

Url

View

Request

2、系统方法(C:\AppServ\www\tp5\thinkphp\helper.php)

dump();  格式化输出

controller(); 调用控制器

action(); 调用方法

config(); 读取和设置配置文件

url(); 生成URL地址

view(); 加载页面

request(); 实例化 Request类

3、如何获取请求类

1、系统函数

$request=request();

2、系统Request类

use think\Request;

// 因为Request类属于单例模式 所以 不能直接new

$request=Request::instance();

3、系统Request类

use think\Request;

// 方法的书写

public function index(Request $request)

{

dump($request);

}

4、获取用户请求信息

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());

7、伪静态

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

5、获取请求模块\控制器\方法

1、控制器

$request->controller();

2、方法

$request->action();

3、模块

$request->module();

6、获取请求相关类型

1、请求类型

$request->method();

2、请求资源类型

$request->type();

3、访问地址

$request->ip();

4、是否ajax请求

$request->isAjax();

5、获取所有地址栏参数

$request->param();

6、获取特定字段

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

7、剔除字段

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

7、获取变量

1、判断是否存在

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、session、cookie、server

$request->get();

$request->post();

$request->put();

$request->server();

$request->request();

$request->session();

$request->cookie();

8、变量的过滤

1、作用

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

2、使用

1、全部的数据进行过滤

// 单个方法过滤

$request->filter("htmlspecialchars");

// 多种方法过滤

$request->filter(["htmlspecialchars","strip_tags"]);

2、针对变量过滤

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

3、密码过滤之后加密

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

9、变量的排除和获取

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');

10、变量修饰符

1、修饰变量的类型

s 字符串

d 整形

f 浮点型

a 数组

b 布尔型

2、使用

dump(input('get.id/d')); // 强制转换整形

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

11、更改变量

// 地址栏访问 http://www.tp.com/index.php/Index/Index/xiugai?id=10

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

dump($request->get(['id'=>20]));  //数组

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

12、请求类型判断

1、系统类

// 判断是否是get请求

dump($request->isGet());

// 判断是否是手机端

dump($request->isMobile());

2、系统函数

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

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

13、模拟put、delete请求

1、使用

<form action="{:url('type')}" method="post">

<p>

User:

<input type="text" name="name" id="">

<input type="hidden" name="_method" value="PUT">

</p>

<p>

Pass:

<input type="password" name="pass" id="">

</p>

<p>

<input type="submit" value="提交">

</p>

</form>

2、注意

1、表单的请求类型必须是post

2、需要设置隐藏域传递模拟请求类型

14、模拟ajax请求和PJAX请求

1、模拟ajax请求

http://www.tp.com/index.php/index/index/type?_ajax=10

2、模拟pjax请求

http://www.tp.com/index.php/index/index/type?_pjax=10

15、伪静态

1、作用

1) URL伪静态通常是为了满足更好的SEO效果

2) 为了网站的安全

2、修改伪静态

在配置文件中进行修改

'url_html_suffix'        => 'shtml',

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

$request->ext();

16、参数绑定

1、使用

public function banding($id,$name="admin"){

dump($id);

dump($name);

}

http://www.tp.com/index.php/index/index/banding/id/1/name/user

2、注意

1、参数绑定的个数,少于地址栏参数的个数

2、参数绑定的名字,必须和地址栏参数名字一一对应

3、参数绑定可以设置默认值

ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应的更多相关文章

  1. ThinkPHP5.0框架开发--第5章 TP5.0 控制器

    ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...

  2. ThinkPHP5.0框架开发--第4章 TP5.0路由

    ThinkPHP5.0框架开发--第4章 TP5.0路由 第4章 TP5.0 路由 ================================================== 上次复习 1. ...

  3. ThinkPHP5.0框架开发--第3章 TP5.0 配置

    ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...

  4. ThinkPHP5.0框架开发--第1章 Tp5.0安装

    ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...

  5. ThinkPHP5.0框架开发--第2章 TP5.0架构

    ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...

  6. ThinkPHP5.0框架开发--第11章 TP5.0 杂项

    ThinkPHP5.0框架开发--第11章 TP5.0 杂项 第11章 TP5.0 杂项 =============================================== 今日学习 1. ...

  7. ThinkPHP5.0框架开发--第10章 TP5.0验证器

    ThinkPHP5.0框架开发--第10章 TP5.0验证器 第10章 TP5.0验证器 ======================================= 今日学习 1.验证器 1) 控 ...

  8. ThinkPHP5.0框架开发--第9章 TP5.0视图和模板

    ThinkPHP5.0框架开发--第9章 TP5.0视图和模板 第9章 TP5.0视图和模板 ===================================================== ...

  9. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  10. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

随机推荐

  1. 0x29 总结与练习

    搜索真的菜..困扰了很久,上个星期天没休息好导致整个礼拜没有精神.. 大概完成得七七八八了吧.真是深切的体会到暴力出奇迹的疯狂啊. 3.虫食算 从末位开始枚举判断,通过加数可以推出和的字母代表的数.那 ...

  2. NumPy和Pandas常用库

    NumPy和Pandas常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组. 用于对整组数 ...

  3. hdoj--1171--Number Sequence(KMP)

    Number Sequence Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  4. oracle 实时查询最耗CPU资源的SQL语句

    1. 先通过top命令查看产用资源较多的spid号 2.查询当前耗时的会话ID,用户名,sqlID等: select sid,serial#,machine,username,program,sql_ ...

  5. vue-quill-editor 禁止编辑

    每天学习一点点,知识财富涨点点 因为权限问题需要对富文本vue-quill-editor进行禁止编辑,因为也不是专业前端,处理起问题来还是只有看文档和百度,发现对这个提问不是很多,可能很多大牛都不会出 ...

  6. ROS-导航功能-RVIZ

    前言:slam使用激光雷达完成了地图构建,现在介绍一下自主导航.move_base用于实现最优路径规划,amcl用于实现机器人定位. 前提:已下载并编译了相关功能包集,如还未下载,可通过git下载:h ...

  7. 任何抛开业务谈大数据量的sql优化都是瞎扯

    周三去某在线旅游公司面试.被问到了一个关于数据量大的优化问题.问题是:一个主外键关联表,主表有一百万数据,外键关联表有一千万的数据,要求做一个连接. 本人接触过单表数据量最大的就是将近两亿行历史数据( ...

  8. ZBrush通过显示与隐藏得到子物体

    在ZBrush®中得到子物体的方法有很多,本文将为大家介绍一种新的创建子物体的方法,通过显示和隐藏得到子物. ZBrush 4R8中文版下载:http://wm.makeding.com/iclk/? ...

  9. ZBrush破解版下载,ZBrush中文版下载

    11月11日这个令人兴奋的日子又来了.没错,“双十一”所有网购达人狂欢的日子.但是ZBrush却让心心念念的小伙伴们失望了一把,本以为双十一期间会有相关活动的,结果,官方并未提及,事实上,ZBrush ...

  10. selenium基础

    浏览器 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转.输入.点击.下拉等来拿到网页渲染之后的结果,可支持多种浏览器 官网链接:http://selenium-python.re ...