热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TP6中请求和响应

TP6中请求的使用一、请求的使用1、引入Request对象usethink\facade\Request;方式1、构造方法注入protected$request;publicfun

TP6中请求的使用


一、请求的使用

//1、引入Request对象
use think\facade\Request;
//方式1、构造方法注入
protected $request;
public function __construct(Request $request)
{
$this->request = $request;
}
//方式2、操作方法注入
public function index(Request $request)
{
return $request->param('name');
}
//方式3、静态调用
public function index()
{
return Request::param('name');
}
//方式4、助手函数
public function index()
{
return request()->param('name');
}
个人推荐使用助手函数方式或者静态调用,比较简单直观


二、请求信息


常用的:

request()->host(); //当前访问域名或者IP
request()->domain(); //当前包含协议的域名
request()->url(); //当前完整的url
request()->query(); //当前请求的query_string
request()->method(); //请求方法
request()->controller(); //当前控制器
request()->action(); //当前操作

三、获取输入变量

// 获取当前请求的所有变量(经过过滤)
Request::param();
// 获取当前请求未经过滤的所有变量
Request::param(false);
// 获取当前请求的name变量
Request::param('name');
// 获取部分变量
Request::param(['name', 'email']);
//判断变量是否存在
Request::has('name','post');
//默认值
Request::get('name'); // 返回值为null
Request::get('name',''); // 返回值为空字符串
Request::get('name','default'); // 返回值为default

四、变量过滤

//框架默认没有设置任何全局过滤规则,你可以在app\Request对象中设置filter全局过滤属性:
namespace app;
class Request extends \think\Request
{
protected $filter = ['htmlspecialchars'];
}
// 获取get变量 并用htmlspecialchars函数过滤
Request::get('name','','htmlspecialchars');
// 获取param变量 并用strip_tags函数过滤
Request::param('username','','strip_tags');
// 获取post变量 并用org\Filter类的safeHtml方法过滤
Request::post('name','','org\Filter::safeHtml');

五、助手函数

//判断变量是否定义
input('?get.id');
input('?post.name');
input('?name');
// 获取单个参数
input('name');
// 获取全部参数
input('');

 HTTP头信息:

//获取全部头信息
$info = Request::header();
echo $info['accept'];
echo $info['accept-encoding'];
echo $info['user-agent'];
//获取某个头信息
$agent = Request::header('user-agent');
伪静态:
在config/route.php 中设置

// URL伪静态后缀 默认是 html
'url_html_suffix' => 'html',
//如果设置为空,则可以支持任意的 后缀
'url_html_suffix'=>''
// 多个伪静态后缀设置 用|分割
'url_html_suffix' => 'html|shtml|xml'
// 关闭伪静态后缀访问
'url_html_suffix' => false,

 


六、响应的使用


各种响应方式:

//响应输出一个字符串
Route::get('hello/:name', function ($name) {
return 'Hello,' . $name . '!';
});
或在控制器中
public function hello($name='thinkphp')
{
return 'Hello,' . $name . '!';
}
//输出json数据
$data = ['name' => 'thinkphp', 'status' => '1'];
return json($data);
//设置输出的状态码
json($data,201);
view($data,401);
//设置输出头信息
json($data)->code(201)->header([
'Cache-control' => 'no-cache,must-revalidate'
]);
//重定向
return redirect('http://www.thinkphp.cn');
//重定向使用 url传参
redirect((string) url('hello',['name' => 'think']));
//文件下载
// download是系统封装的一个助手函数
return download('image.jpg', 'my');
//直接下载内容
$data = '这是一个测试文件';
return download($data, 'test.txt', true);

 

 

 

 



推荐阅读
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
author-avatar
北京城市环境监督主力军
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有