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. MFC C++ 获取外网IP地址

    #include <afxinet.h> //GB2312 转换成 Unicode wchar_t* GB2312ToUnicode(const char* szGBString) { U ...

  2. mysqlbinlog高速遍历搜索记录

    目标,开发者说有个数据莫名其妙加入了.可是不知道是从哪里加入的.并且应用功能里面不应该加入这种数据,为了查清楚来源,所以我就准备去binlog里面找了.可是binlog有好几个月的数,我这样一个个my ...

  3. redis持久化,rdb,aof

    RDB(Redis DataBase) AOF(Append Only File) 周阳语录:能撑过面试经理头一分钟最重要.头一分钟,决定人家还是否想跟你继续聊下去. RDB RDB就是在指定的时间内 ...

  4. Win+X

    Win+X 方便的快捷键,可以快速使用命令行和运行!

  5. java1.8对集合中对象的特有属性进行排序

    每天学习一点点,知识财富涨点点 1.创建对象user12 2.编写测试类 3.输出结果 加油!!!!

  6. JavaScript设计模式学习——builder pattern(建造者模式)

    个人理解的应用场景 举个例子,比如想要创建各种类型的车的实例,车的类型有很多种,但创建每种类型车的接口定义可能是一样的,就用到了此模式 相关概念的通俗解释 上述例子中接口的定义叫builder 接口到 ...

  7. java8 stream 流 例子

    Trader raoul = new Trader("Raoul", "Cambridge"); Trader mario = new Trader(" ...

  8. Broadcast Receiver广播接收器

    1.概述 广播接收器不仅能接受来自系统的内容,也可以接受来自其他app的内容.广播分为标准广播和有序广播. 2.标准广播 一种完全异步执行的广播,在广播发出之后几乎所有的广播接收器都在同一时刻接受到广 ...

  9. genemotion

    genemotion 问题 https://blog.csdn.net/beiminglei/article/details/17399333 https://www.jianshu.com/p/f8 ...

  10. 其他信息: 具有固定名称“Npgsql”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。有关详细信息,请参阅内部异常

    其他信息: 具有固定名称“Npgsql”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载.有关详细信息,请参阅内部异常 解决方法 在 App.config 的 configur ...