Thinkphp 请求和响应
一. Request对象获取方法
1. request() 助手函数获取
2. think\Request 类获取
3.利用框架注入Request对象 Request方法时单利方法 在think框架app类中会被实例化
<?php
namespace app\index\controller; use think\Request; class Index
{
/**
* @param Request $request
* @return string|void
*/
public function index(Request $request)
{
#$request = request();
#$request = Request::instance();
return dump($request);
}
}
二. Request 对象的使用方法 注Request的param方法获取的值包括post传输的值,使用时尽量使用$request->post('id')这种明确范围的方式
<?php
namespace app\index\controller; use http\Params;
use think\Request; class Index
{
/**
* @param Request $request
* @return string|void
* @url http://localhost/news/5.html?name=jiang
*/
public function index(Request $request)
{
/* 获取域名 */
dump($domain = $request->domain()); # 返回域名 $domain = http://localhost
dump($pathinfo= $request->pathinfo()); # 返回域名和?之间的值 $pathinfo = news/5.html
dump($path = $request->path()); # $path = news/5 /* 请求类型 */
dump($method = $request->method()); # 返回请求方法 $method = GET;
dump($request->isGet()); #判断是请求的方法类型 是判断的类型返回true 不是返回false
dump($request->isAjax()); # /* 请求参数 */
dump($id = $request->get("id")); #get接收的值不包括 pathinfo 部分 这里返回 null
dump($id = $request->param('id')); # $id = 5
dump($name = $request->param('name')); # $name = jiang
#session("name",'jiangfeilong'); #设置session
dump($session = $request->session()); #获取sssion对象 没设置session的化返回空数组
dump($session_name = $request->session("name")); #返回session 的name的值
dump($cookie = $request->cookie()); #获取cookie对象 返回cookie数组
dump($phpSessId = $request->cookie('PHPSESSID')); #返回cookie的sessionId的值
/* 利用助手函数获取url参数 */
dump($id = input('id')); /* 获取模块 控制器 操作 */
dump($module = $request->module()); #获取当前模块 这里时index
dump($controller = $request->controller()); #返回当前控制器 这里是 Index类
dump($action = $request->action()); #返回当前操作 这里返回的是index模块的Index类的index()方法 /* 获取 url */
dump($url = $request->url()); #返回 / 之后的 url 这里是 /news/5.html?name=jiang
dump($baseUrl = $request->baseUrl()); # 返回 /和?号之间url的部分 这里是 /news/5.html }
}
request和input使用filter过滤
语法格式 $reuqest->post('key',100,'过滤函数'); //100为默认值 过滤函数可以自己定义,也可以用Php的 trim intval 等函数
自己定义fillter的使用示例
<?php
/* application/index/controller/filter.php */ function change($text )
{
$tmp = intval($text);
if((!is_int($tmp))){
return 0;
}
return -$tmp;
}
<?php
namespace app\index\controller; use http\Params;
use think\Request;
import('filter',APP_PATH.'common',".php");
class Index
{
/**
* @param Request $request
* @return string|void
* @url http://localhost/news/5.html?name=jiang
*/
public function index(Request $request)
{ dump('request -> '.$request->post('id',100,'intval'));
/* 助手函数 */ dump($request->post('id',100,'change'));
dump(input('post.name','jiang','trim')); } }
Thinkphp 请求和响应的更多相关文章
- ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应
ThinkPHP5.0框架开发--第6章 TP5.0 请求和响应 第6章 TP5.0 请求和响应 ===================================== 上次复习 1.新建控制器 ...
- Django底层剖析之一次请求到响应的整个流程
As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...
- 初入网络系列笔记(4)HTTP请求和响应
一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...
- http协议(二)请求和响应报文的构成
http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...
- iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全
一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...
- struts2基础——请求与响应、获取web资源
一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...
- 浏览器-Tomcat服务器-请求与响应
浏览器访问服务器,本质就是请求资源. 比如请求静态资源:index.html,我们在浏览器地址栏输入:www.a.com/index.html,浏览器为了支持HTTP协议,发送的数据必须符合HTTP协 ...
- 写一个ActionFilter检测WebApi接口请求和响应
我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把 ...
- AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应
Web 开发中,除了数据操作之外,最频繁的就是发起和处理各种 HTTP 请求了,加上 HTTP 请求又是异步的,如果在每个请求中来单独捕获各种常规错误,处理各类自定义错误,那将会有大量的功能类似的代码 ...
随机推荐
- ES6 模板语法和分隔符
let user = 'Barret'; console.log(`Hi ${user}!`); // Hi Barret!
- ES6 对象超类
var parent = { foo() { console.log("Hello from the Parent"); } } var child = { foo() { sup ...
- 图论——图的邻接表实现——Java语言(完整demo)
1.图的简单实现方法——邻接矩阵 表示图的一种简单的方法是使用一个一维数组和一个二维数组,称为领接矩阵(adjacent matrix)表示法. 对于每条边(u,v),置A[u,v]等于true:否则 ...
- zabbix主动、被动TCP连接过程
zabbix主动.被动TCP连接过程 https://blog.csdn.net/u010668387/article/details/79460183
- React Native商城项目实战14 - 首页中间下部分
1.MiddleBottomView.js /** * 首页中间下部分 */ import React, { Component } from 'react'; import { AppRegistr ...
- 查询SQL Server数据库所有表字段备注
SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull ...
- c++静态成员变量初始化时不受访问权限控制
1.要在类外初始化,const 成员变量才能在类内初始化 2.初始化在类外,而不在main函数内 class A{ private: string name; A(){ name = "a& ...
- python正则表达式整理
正则表达式在处理字符串时很大的作用,爬虫中也经常用到,下面就将一些常用正则表达式做一整理记录,方便以后查看. ^d 表示匹配以d开头的字符串 . 表示匹配任意字符串 * 表示前面 ...
- 倾旋之slack主题协同
源:https://pocketcorp.slack.com/join/shared_invite/enQtNTk2MDYwNDA4NzU0LTg3ZGVlNDE5NWUzNjJhZTc1MDQ5MT ...
- CEPH集群搭建(CentOS 7)
以包含四个节点的集群为例,其中包括一个 ceph-deploy 管理节点和一个三节点的Ceph存储集群. 下图中每个节点代表一台机器. 创建一个 Ceph 存储集群,它有一个 Monitor 和两个 ...