ThinkPHP5学习笔记(6)请求和响应
在线视频课程:http://www.kancloud.cn/tpshop/thinkphp5/220692
Request请求对象和Response响应对象
$_GET、$_POST、$_REQUEST、$_COOKIE
调用请求对象$request=Request::instance()
$this->request或request()->url();助手函数
input()助手函数
响应格式 json xml 模板渲染
页面跳转 重定向
$this->success $this->error $this->redirect
<?php
namespace app\admin\controller;use think\Request;
use think\Controller;class Index extends Controller
{public function index(){return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一剑 - 为API开发设计的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛云</a> 独家赞助发布 ]</span></div><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_bd568ce7058a1091"></thinkad>';}public function hello(){// 获取请求类型if(Request::instance()->isGet()) {echo '当前为GET请求';}if(Request::instance()->isPost())echo '当前为POST请求';if(Request::instance()->isPut()) echo '当前为PUT请求';if(Request::instance()->isDelete()) echo '当前为DELETE请求';if(Request::instance()->isAjax()) echo '当前为AJAX请求';if(Request::instance()->isPjax()) echo '当前为PJAX请求';if(Request::instance()->isMobile()) echo '当前为Mobile请求';if(Request::instance()->isHead()) echo '当前为HEAD请求';if(Request::instance()->isPatch()) echo '当前为PATCH请求';if(Request::instance()->isOptions()) echo '当前为OPTIONS请求';if(Request::instance()->isCli()) echo '当前为cli';if(Request::instance()->isCgi()) echo '当前为cgi';if(request()->isGet()){echo '当前为GET请求';};// 获取URL信息$request = Request::instance();$request = request();echo 'domain:'.$request->domain().'<br/>';echo 'file:'.$request->baseFile().'<br/>';echo 'url:'.$request->url().'<br/>';echo 'url with domain:'.$request->url(true).'<br/>';echo 'url without query:'.$request->baseUrl().'<br/>';echo 'root:'.$request->root().'<br/>';echo 'root with domain:'.$request->root(true).'<br/>';echo 'pathinfo:'.$request->pathinfo().'<br/>';echo 'pathinfo:'.$request->path().'<br/>';echo 'ext'.$request->ext().'<br/>';// 设置/获取 模块/控制器/操作名称$request = Request::instance();echo '当前模块名称是'.$request->module();echo '当前控制器名称是'.$request->controller();echo '当前操作名称是'.$request->action();Request::instance()->module('module_name');echo '当前模块名称是'.$request->module();// 获取请求参数echo '请求方法:'.$request->method().'<br/>';echo '资源类型:'.$request->type().'<br/>';echo '访问地址:'.$request->ip().'<br/>';echo '是否Ajax请求:'.var_export($request->isAjax(),true);echo '请求参数:';dump($request->param());echo '请求参数:仅包含name';dump($request->only(['name']));echo '请求参数:排除name';dump($request->except(['name']));// 获取路由和调度信息echo '路由信息';dump($request->route());echo '调度信息';dump($request->dispatch());// 设置请求信息$request = Request::instance();$request->root('index.php');$request->pathinfo('admin/index/hello');}public function hello2(){$data = ['name'=>'thinkphp','status'=>1];// 浏览器安装json插件return json($data);// return xml($data);// $this->assign('name','渲染 模板');// return $this->fetch();}// hello3// 如果没有 extends Controller 就写:// use \traits\controller\Jump;public function hello3(){$this->success('正常的页面跳转','hello');$this->error('错误的页面跳转','hello2');$this->redirect('http://tp-shop.cn');}public function hello4(){// 检测变量是否设置Request::instance()->has('id','get');Request::instance()->has('name','post');input('?get.id');input('?post.name');// 变量获取$request = Request::instance();echo $request->bind('user_name','张三');echo $request->user_name;print_r($request->param());echo '<br/>';echo $request->param('name');print_r(input());echo '<br/>';echo input('name');print_r(Request::instance()->param(false));print_r(Request::instance()->param(true));echo (input('param.name'));print_r (input('param.'));// 或echo (input('name'));print_r('');// 获取GET变量echo (Request::instance()->get('id'));echo (Request::instance()->get('name'));print_r(Request::instance()->get()); // 获取经过过滤的print_r(Request::instance()->get(false));//获取原始变量// 或echo input('get.id');echo input('get.name');print_r(input('get.'));// 获取POST变量echo (Request::instance()->post('name'));print_r(Request::instance()->post());print_r(Request::instance()->post(false));// 或echo (input('post.name'));print_r('post.');// 获取PUT变量echo (Request::instance()->put('name'));print_r (Request::instance()->put());print_r (Request::instance()->put(false));// 或echo (input('put.name'));print_r(input('put.'));// 获取REQUEST变量echo (Request::instance()->request('id'));print_r(Request::instance()->request());print_r(Request::instance()->request(false));// 或echo (input('request.id'));print_r (input('request.'));// 获取SERVER变量echo (Request::instance()->server('PHP_SELF'));print_r(Request::instance()->server());// 或echo (input('server.PHP_SELF'));print_r(input('server.'));//获取SESSION变量echo (Request::instance()->session('user_id'));print_r(Request::instance()->session());// 或echo (input('session.user_id'));print_r(input('session.'));// 获取Cookie变量echo (Request::instance()->cookie('user_id'));print_r(Request::instance()->cookie());// 或echo (input('cookie.user_id'));print_r(input('cookie.'));// 变量过滤// 在application/config.php中设置// 'default_filter'=>'htmlspecialchars';Request::instance()->filter('htmlspecialchars');Request::instance()->filter(['strip_tags','htmlspecialchars']);// 在添加变量的时候添加过滤方法Request::instance()->get('name','','htmlspecialchars');Request::instance()->param('username','','strip_tags');Request::instance()->post('name','','org\Filter::safeHtml');Request::instance()->param('username','','strip_tags,strtolower');Request::instance()->post('email','','FILTER_VALIDATE_EMAIL');Request::instance()->post('email','','email');Request::instance()->get('name','',false);// 获取部分变量Request::instance()->only('id,name');Request::instance()->only(['id','name']);Request::instance()->only(['id','name'],'get');Request::instance()->only(['id','name'],'post');// 排除部分变量Request::instance()->except('id,name');Request::instance()->except(['id','name']);Request::instance()->except(['id','name'],'get');Request::instance()->except(['id','name'],'post');// 变量修饰符input('get.id/d');input('get.name/s');input('get.ids/a');Request::instance()->get('id/d');}public function hello5(){Request::instance()->get(['id'=>10]);Request::instance()->post(['name'=>'thinkphp']);// 尽量避免直接修改$_GET,$_POST,也不能直接修改param变量,下面写法无效// Request::instance()->param(['id'=>10]);}}
转载于:https://blog.51cto.com/phpervip/1931987
ThinkPHP5学习笔记(6)请求和响应相关推荐
- VBA 学习笔记 - 网络请求
VBA 学习笔记 - 网络请求 Microsoft.XMLHTTP MSXML2.serverXMLHTTP.6.0 WinHttp.WinHttpRequest.5.1 参考资料 Microsoft ...
- angular2 学习笔记 ( Http 请求)
更新 : 2017-06-08 总觉得 angular 的 http 怎么就多了 Request, Headers, Response 这些麻烦东东呢. 原来这些都是游览器的"新特性&qu ...
- thinkphp5学习笔记
1. 助手函数操作数据库 查询: db('user')->where('id',1)->find(); db('user')->where('status',1)->selec ...
- php 调用 坐标拾取,坐标拾取 · thinkphp5学习笔记 · 看云
腾讯坐标拾取,一当前位置为中心: ~~~ 传递事件参数 window.addEventListener('message', function(event) { // 接收位置信息 var loc = ...
- CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码
CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码 WEB-HTTP协议 1-请求方式 2-302跳转 3.cookie 4.基础认证 5.响 ...
- Severlet、Tomcat以及前端请求响应学习笔记
Severlet.Tomcat以及前端请求响应学习笔记 一:概念 1.什么是Severlet和Tomcat? Severlet是Sun公司制定的一套标准.是使用java语言编写的服务器端程序,用于处理 ...
- AJAX学习笔记(基本使用,请求参数传递,获取服务端响应,错误处理,低版本IE浏览器缓存问题及解决)
1. Ajax实现步骤 创建ajax对象 let xhr = new XMLHttpRequest(); 告诉ajax请求地址及请求方式 xhr.open('get','http://www.exam ...
- Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】
Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...
- CoAP学习笔记——服务器端繁忙时的处理请求流程
CoAP学习笔记--服务器端繁忙时的处理请求流程 CoAP是一个简单的请求响应机制,对于一个给定的请求便有一个相应的响应. 很多时候,如果服务器不能立即响应一个CON请求,服务器只能返回一个空应答,这 ...
- Vue学习笔记(三)Vue2三种slot插槽的概念与运用 | ES6 对象的解构赋值 | 基于Vue2使用axios发送请求实现GitHub案例 | 浏览器跨域问题与解决
文章目录 一.参考资料 二.运行环境 三.Vue2插槽 3.1 默认插槽 3.2 具名插槽 3.3 作用域插槽 ES6解构赋值概念 & 作用域插槽的解构赋值 3.4 动态插槽名 四.GitHu ...
最新文章
- 职场协同办公如何使用硬技能,助推团队协作更流畅?
- python2基础教程廖雪峰云-Python 基础教程
- python中的break+while break+for
- thinkphp5 composer
- 牛顿法中为何出现hessian矩阵
- vue class绑定方式
- python连续读取邮件_Python读取指定日期邮件的实例
- 点击加入购物车直接转到购物车页面
- 字符串hash(类似于进制的hash)
- 360随身wifi+Wireshark 对手机应用抓包
- sql还原数据库操作
- 嵌入式系统设计师考试完美笔记
- JAVA疫情数据可视化系统毕业设计 开题报告
- 【JavaSE8 高级编程 多线程】多线程入门级解析 2019_7_27
- 伺服驱动器原点回归有一点让人很迷惑
- 2DPCA—二维主成分分析详解及编程
- Cef开发学习 - Windows平台简易的Cef浏览器,支持下载管理和多标签管理
- 通达OA11.6复现
- 智力游戏(搬山游戏)
- 图像审核产品“侦图” —— Milvus 在翼支付风控场景中的应用
热门文章
- Atitit mac os 版本 新特性 attilax大总结
- paip.log4j兼容linux windows 路径设置
- paip.python优缺点attilax总结
- paip. everything exe 文件不能启动的解决
- paip.没有源码的情况下更改ASP.net ASPX页
- paip.PHP-asp—jsp实现事件机制 WEBFORM式开发
- paip.接入支付接口功能流程总结
- 语法比较:Julia,Matlab,Python
- 12月14日丨Harbor技术沙龙与您相约深圳!
- 3月21日阿里云北京峰会的注册二维码