在线视频课程: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)请求和响应相关推荐

  1. VBA 学习笔记 - 网络请求

    VBA 学习笔记 - 网络请求 Microsoft.XMLHTTP MSXML2.serverXMLHTTP.6.0 WinHttp.WinHttpRequest.5.1 参考资料 Microsoft ...

  2. angular2 学习笔记 ( Http 请求)

    更新 : 2017-06-08  总觉得 angular 的 http 怎么就多了 Request, Headers, Response 这些麻烦东东呢. 原来这些都是游览器的"新特性&qu ...

  3. thinkphp5学习笔记

    1. 助手函数操作数据库 查询: db('user')->where('id',1)->find(); db('user')->where('status',1)->selec ...

  4. php 调用 坐标拾取,坐标拾取 · thinkphp5学习笔记 · 看云

    腾讯坐标拾取,一当前位置为中心: ~~~ 传递事件参数 window.addEventListener('message', function(event) { // 接收位置信息 var loc = ...

  5. CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码

    CTFHUB http协议题目 学习笔记 详细步骤 请求方式 302跳转 cookie 基础认证 响应源代码 WEB-HTTP协议 1-请求方式 2-302跳转 3.cookie 4.基础认证 5.响 ...

  6. Severlet、Tomcat以及前端请求响应学习笔记

    Severlet.Tomcat以及前端请求响应学习笔记 一:概念 1.什么是Severlet和Tomcat? Severlet是Sun公司制定的一套标准.是使用java语言编写的服务器端程序,用于处理 ...

  7. AJAX学习笔记(基本使用,请求参数传递,获取服务端响应,错误处理,低版本IE浏览器缓存问题及解决)

    1. Ajax实现步骤 创建ajax对象 let xhr = new XMLHttpRequest(); 告诉ajax请求地址及请求方式 xhr.open('get','http://www.exam ...

  8. Servlet和HTTP请求协议-学习笔记02【Servlet_体系结构与urlpartten配置、HTTP请求协议】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  9. CoAP学习笔记——服务器端繁忙时的处理请求流程

    CoAP学习笔记--服务器端繁忙时的处理请求流程 CoAP是一个简单的请求响应机制,对于一个给定的请求便有一个相应的响应. 很多时候,如果服务器不能立即响应一个CON请求,服务器只能返回一个空应答,这 ...

  10. Vue学习笔记(三)Vue2三种slot插槽的概念与运用 | ES6 对象的解构赋值 | 基于Vue2使用axios发送请求实现GitHub案例 | 浏览器跨域问题与解决

    文章目录 一.参考资料 二.运行环境 三.Vue2插槽 3.1 默认插槽 3.2 具名插槽 3.3 作用域插槽 ES6解构赋值概念 & 作用域插槽的解构赋值 3.4 动态插槽名 四.GitHu ...

最新文章

  1. 职场协同办公如何使用硬技能,助推团队协作更流畅?
  2. python2基础教程廖雪峰云-Python 基础教程
  3. python中的break+while break+for
  4. thinkphp5 composer
  5. 牛顿法中为何出现hessian矩阵
  6. vue class绑定方式
  7. python连续读取邮件_Python读取指定日期邮件的实例
  8. 点击加入购物车直接转到购物车页面
  9. 字符串hash(类似于进制的hash)
  10. 360随身wifi+Wireshark 对手机应用抓包
  11. sql还原数据库操作
  12. 嵌入式系统设计师考试完美笔记
  13. JAVA疫情数据可视化系统毕业设计 开题报告
  14. 【JavaSE8 高级编程 多线程】多线程入门级解析 2019_7_27
  15. 伺服驱动器原点回归有一点让人很迷惑
  16. 2DPCA—二维主成分分析详解及编程
  17. Cef开发学习 - Windows平台简易的Cef浏览器,支持下载管理和多标签管理
  18. 通达OA11.6复现
  19. 智力游戏(搬山游戏)
  20. 图像审核产品“侦图” —— Milvus 在翼支付风控场景中的应用

热门文章

  1. Atitit mac os 版本 新特性 attilax大总结
  2. paip.log4j兼容linux windows 路径设置
  3. paip.python优缺点attilax总结
  4. paip. everything exe 文件不能启动的解决
  5. paip.没有源码的情况下更改ASP.net ASPX页
  6. paip.PHP-asp—jsp实现事件机制 WEBFORM式开发
  7. paip.接入支付接口功能流程总结
  8. 语法比较:Julia,Matlab,Python
  9. 12月14日丨Harbor技术沙龙与您相约深圳!
  10. 3月21日阿里云北京峰会的注册二维码