12
06月
2020
1、如何获取请求类 系统函数:request(); 系统类: use think\Request; $request = Request::instance();//因为request是单例模式 所以不能直接new 系统控制器类: use think\Request; public function index(Request $request){ dump($request); } 2、获取用户请求信息 $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/>'; 伪静态:将路径伪装成静态页面,让搜索引擎更好的收录网站,防止别人知道网站真实开发语言 3、获取请求模块/控制器/请求方法 模块:$request->module(); 方法:$request->action(); 控制器:$request->controller(); 4、获取请求相关类型 请求类型:$request->method(); 请求资源类型:$request->type(); 访问地址:$request->ip(); 是否是ajax请求:$request->isAjax(); 获取请求参数:$request->param(); $request->only(['name','id']);//只获取特定字段 $request->except(['name','id']);//剔除取特定字段 5、获取变量 判断是否存在 $request->has('id','get'); input('?get.id'); 读取变量 $request->get('id'); input('get.id'); 读取所有 input('get.'); $request->get(); 可读取数据类型:get、post、put、session、cookie等 6、变量过滤 作用:防止恶意输入,防止sql注入 使用: 全部数据过滤 $request->filter('htmlspecialchars'); $request->filter(['htmlspecialchars','strip_tags']); 针对变量过滤 $request->get('name','','htmlspecialchars'); 过滤之后加密 $request->get('name','','htmlspecialchars,md5'); 7、变量的排除和获取 $request->only('name'); $request->except('name'); 8、变量的修饰符 修饰符 作用 s 强制转换为字符串类型 d 强制转换为整型类型 b 强制转换为布尔类型 a 强制转换为数组类型 f 强制转换为浮点类型 input('get.id/d');//强制转换成整型 input('get.name/s');//强制转换成字符串 9、变量的更改 地址栏访问:http://www.tp5.net/index.php/index/index/index?id=10 $request->get(['id'=>9] 10、判断请求类型 // 是否为 GET 请求 if ($request->isGet()) echo "当前为 GET 请求"; // 是否为 POST 请求 if ($request->isPost()) echo "当前为 POST 请求"; // 是否为 PUT 请求 if ($request->isPut()) echo "当前为 PUT 请求"; // 是否为 DELETE 请求 if ($request->isDelete()) echo "当前为 DELETE 请求"; // 是否为 Ajax 请求 if ($request->isAjax()) echo "当前为 Ajax 请求"; // 是否为 Pjax 请求 if ($request->isPjax()) echo "当前为 Pjax 请求"; // 是否为手机访问 if ($request->isMobile()) echo "当前为手机访问"; // 是否为 HEAD 请求 if ($request->isHead()) echo "当前为 HEAD 请求"; // 是否为 Patch 请求 if ($request->isPatch()) echo "当前为 PATCH 请求"; // 是否为 OPTIONS 请求 if ($request->isOptions()) echo "当前为 OPTIONS 请求"; // 是否为 cli if ($request->isCli()) echo "当前为 cli"; // 是否为 cgi if ($request->isCgi()) echo "当前为 cgi"; request()->isGet(); 11、模拟put、delete请求 使用: <form action="" method="post" > <input type="hidden" name ="_method" value="PUT"> </form> 注意: 表单的请求类型必须是post 需要设置隐藏域传递模拟请求类型 12、伪静态 作用:满足更好的seo优化,为了网站的安全 修改伪静态:'url_html_suffix' => 'html' 获取伪静态后缀:$request->ext(); 13、参数绑定 使用:public function bingding($name){ echo $name; } 注意:参数绑定的个数少于地址栏参数的个数, 参数绑定的名字必须和地址栏的参数名一致, 参数绑定可以设置默认值
原文地址:https://blog.csdn.net/odelia145/article/details/87258770