获取当前的请求信息,可以使用\think\Request 类
使用前应在文件中引用Request类
这里以index控制器来设置,打开tp5/app/index/controller/index.php
使用Request类有两种方式
$request=Request::instance;
或者是
$request=request();
这里以第一种方式为例:
<?php
namespace app\index\controller;
use think\Request;//引入Request类
class Index
{
public function index()
{
$request = Request::instance();
echo '当前的域名是' . $request -> domain() .'<br/>';
echo '当前的入口文件' . $request ->baseFile() .'<br/>';
echo '当前的URL地址' . $request ->url() .'<br/>';
echo '当前完整的URL地址' . $request ->url(true) .'<br/>';
echo '当前的URL地址,不含QUERY_STRING' . $request ->baseUrl() .'<br/>';
echo '当前的ROOT地址' . $request ->root() .'<br/>';
echo '当前url访问的ROOT地址' . $request ->root(true) .'<br/>';
echo '获取url地址中的PATH_INFO信息' . $request ->pathinfo() .'<br/>';
echo '获取url地址中的PATH_INFO信息,不含后缀' . $request ->path() .'<br/>';
echo '获取url地址中的后缀信息' . $request ->ext() .'<br/>';
echo '当前的模块名称是' . $request->module() .'<br/>';
echo '当前的控制器名称是' . $request->controller() .'<br/>';
echo '当前的操作名称是' . $request->action() .'<br/>';
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())
.dump($request->only(['name']))
.dump($request->except(['name']));
echo dump(input()) . '<br/>'; //获取请求变量
echo dump(input('?get.name')) . '<br/>'; //bool值,是否存在$_GET['name']
echo dump(input('get.name')) . '<br/>'; //获取$_GET['name']
echo input('name') . '<br/>'; //直接获取name
echo input('web/s') . '<br/>'; //修饰符,默认为s(即转为字符串),
echo input('web/b') . '<br/>'; // /b是转换为布尔
echo input('pass/d') . '<br/>'; // /d是转换为整型
//修改变量
$request->get(['name'=>'tom']); //将$_GET['name']的值改为tom
echo input('name') . '<br/>'; //重新输出$_GET['name']
echo $request->isAjax(). '<br/>'; //是否为ajax请求
echo dump($request->header()); //打印header信息
}
}
其他内容请参考thinkphp5完全开发手册