ThinkPHP5.0中Request请求对象的常用操作
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP5.0中Request请求对象的常用操作相关的知识,希望对你有一定的参考价值。
$request = Request::instance();// 获取当前域名
echo 'domain: ' . $request->domain() . '<br/>';
// 获取当前入口文件
echo 'file: ' . $request->baseFile() . '<br/>';
// 获取当前URL地址 不含域名
echo 'url: ' . $request->url() . '<br/>';
// 获取包含域名的完整URL地址
echo 'url with domain: ' . $request->url(true) . '<br/>';
// 获取当前URL地址 不含QUERY_STRING
echo 'url without query: ' . $request->baseUrl() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root:' . $request->root() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root with domain: ' . $request->root(true) . '<br/>';
// 获取URL地址中的PATH_INFO信息
echo 'pathinfo: ' . $request->pathinfo() . '<br/>';
echo 'pathinfo: ' . $request->path() . '<br/>';// 获取URL地址中的PATH_INFO信息 不含后缀
echo 'ext: ' . $request->ext() . '<br/>';// 获取URL地址中的后缀信息
echo "当前模块名称是" . $request->module();
echo "当前控制器名称是" . $request->controller();
echo "当前操作名称是" . $request->action();
echo '请求方法:' . $request->method() . '<br/>';
echo '资源类型:' . $request->type() . '<br/>';
echo '访问ip地址:' . $request->ip() . '<br/>';
echo '是否AJax请求:' . var_export($request->isAjax(), true) . '<br/>';
echo '请求参数:';
dump($request->param());
echo '请求参数:仅包含name';
dump($request->only(['name']));
echo '请求参数:排除name';
dump($request->except(['name']));
echo '路由信息:';
dump($request->route());
echo '调度信息:';
dump($request->dispatch()); 参考技术A $request = Request::instance();
// 获取当前域名
echo 'domain: ' . $request->domain() . '<br/>';
// 获取当前入口文件
echo 'file: ' . $request->baseFile() . '<br/>';
// 获取当前URL地址 不含域名
echo 'url: ' . $request->url() . '<br/>';
// 获取包含域名的完整URL地址
echo 'url with domain: ' . $request->url(true) . '<br/>';
// 获取当前URL地址 不含QUERY_STRING
echo 'url without query: ' . $request->baseUrl() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root:' . $request->root() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root with domain: ' . $request->root(true) . '<br/>';
// 获取URL地址中的PATH_INFO信息
echo 'pathinfo: ' . $request->pathinfo() . '<br/>';
看看这样能不能帮你的忙,如果还不行的话你可以去后盾人看视频学习的
ThinkPHP5学习笔记请求和响应
在线视频课程: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]); } }
以上是关于ThinkPHP5.0中Request请求对象的常用操作的主要内容,如果未能解决你的问题,请参考以下文章