thinkphp5.0 获取请求信息

时间:2019-01-18
本文章向大家介绍thinkphp5.0 获取请求信息,主要包括thinkphp5.0 获取请求信息使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
如果要获取当前的请求信息,可以使用\think\Request类,除了下文中的

$request = Request::instance();

也可以使用助手函数

$request = request();

获取URL信息

$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/>';

// 获取URL地址中的PATH_INFO信息 不含后缀
echo 'pathinfo: ' . $request->path() . '<br/>';

// 获取URL地址中的后缀信息
echo 'ext: ' . $request->ext() . '<br/>';

输出结果为:

domain: http://tp5.com

file: /index.php

url: /index/index/hello.html?name=thinkphp

url with domain: http://tp5.com/index/index/hello.html?name=thinkphp

url without query: /index/index/hello.html

root:

root with domain: http://tp5.com

pathinfo: index/index/hello.html

pathinfo: index/index/hello

ext: html

设置/获取 模块/控制器/操作名称


$request = Request::instance();

echo "当前模块名称是" . $request->module();

echo "当前控制器名称是" . $request->controller();

echo "当前操作名称是" . $request->action();

输出结果为:


当前模块名称是index

当前控制器名称是HelloWorld

当前操作名称是index

获取请求参数


$request = Request::instance();

echo '请求方法:' . $request->method() . '<br/>';

echo '资源类型:' . $request->type() . '<br/>';

echo '访问地址:' . $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']));

输出结果为:


请求方法:GET

资源类型:html

访问地址:127.0.0.1

是否AJax请求:false

请求参数:
array (size=2)
  'test' => string 'ddd' (length=3)
  'name' => string 'thinkphp' (length=8)
  
请求参数:仅包含name
array (size=1)
  'name' => string 'thinkphp' (length=8)
  
请求参数:排除name
array (size=1)
  'test' => string 'ddd' (length=3)

获取路由和调度信息


$request = Request::instance();

echo '路由信息:';

dump($request->route());

echo '调度信息:';

dump($request->dispatch());

输出结果为:

路由信息:
array (size=4)
  'rule' => string 'hello/:name' (length=11)
  'route' => string 'index/hello' (length=11)
  'pattern' => 
    array (size=1)
      'name' => string '\w+' (length=3)
  'option' => 
    array (size=0)
      empty
      
调度信息:
array (size=2)
  'type' => string 'module' (length=6)
  'module' => 
    array (size=3)
      0 => null
      1 => string 'index' (length=5)
      2 => string 'hello' (length=5)

设置请求信息

如果某些环境下面获取的请求信息有误,可以手动设置这些信息参数,使用下面的方式:

$request = Request::instance();

$request->root('index.php');

$request->pathinfo('index/index/hello');

感谢您的阅读!