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. 【opencv】opencv在vs下的配置(持续更新)

    经常使用配置记录,会更新下去. 1.去掉ipch及.sdf文件 opencv在vs编译会得到很多文件.当中.dsf和ipch文件就有几十M.总是非常占空间,而这都是用来保存C++预编译的头文件和Int ...

  2. P1233 木棍加工

    P1233 木棍加工 题目描述 一堆木头棍子共有n根,每根棍子的长度和宽度都是已知的.棍子可以被一台机器一个接一个地加工.机器处理一根棍子之前需要准备时间.准备时间是这样定义的: 第一根棍子的准备时间 ...

  3. python matplot 绘图

    import numpy as np import matplotlib.pyplot as plt plt.figure(1) # 创建图表1 plt.figure(2) # 创建图表2 ax1 = ...

  4. 信息安全-加密:MD5

    ylbtech-信息安全-加密:MD5 MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值( ...

  5. 切换JDK版本quick

    最近遇到一个小问题,同时做两个项目,jdk版本一个是5,一个是6,我也去网上找了找方法,但是感觉不是特别好用,最后自己通过一些环境变量设置的技巧和一些批处理命令来使得这件事情只需要双击,输入一个数字回 ...

  6. java多线程 interrupt(), interrupted(), isInterrupted()方法区别

    interrupt()方法: 作用是中断线程. 本线程中断自身是被允许的,且"中断标记"设置为true 其它线程调用本线程的interrupt()方法时,会通过checkAcces ...

  7. TCP和UDP的具体区别

    TCP和UDP的最完整的区别 TCP UDP TCP与UDP基本区别: 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少: 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UD ...

  8. 日志记录~log4.net

    1. 添加Log4net引用 2. 添加配置文件 Log.config <?xml version="1.0" encoding="utf-8"?> ...

  9. .NET中的异步操作及线程同步

    执行异步操作 CLR使用了WIN的线程处理能力,但保留了与其分离的权利.某些时候CLR的线程与Win的线程不是完全的匹配. 线程的系统开销较大,应限制其数量. 创建:分配并初始化一线程内核对象,保留1 ...

  10. Sphinx全文索引安装教程

    首先了解一下sphinx全文索引的相关知识官方网站:http://www.sphinxsearch.com/ 官方文档:http://www.sphinxsearch.com/docs/ 中文支持:h ...