多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> ## 检测变量是否被设置 ``` 方法一: Request::instance()->has('id','get'); Request::instance()->has('name','post'); 方法二: input('?get.id'); input('?post.name'); ``` > ## 获取超全局变量的值 > ### 变量类型方法('变量名/变量修饰符','默认值','过滤方法') |方法|描述| |---|---| |param|获取当前请求的变量| |get|获取 $_GET 变量| |post |获取 $_POST 变量| |put |获取 PUT 变量| |delete |获取 DELETE 变量| |session| 获取 $_SESSION 变量| |cookie |获取 $_COOKIE 变量| |request |获取 $_REQUEST 变量| |server |获取 $_SERVER 变量| |env |获取 $_ENV 变量| |route |获取 路由(包括PATHINFO) 变量| |file |获取 $_FILES 变量| ``` 第一种获取方法: // 获取单个变量(其他方法一样) Request::instance()->param('name'); // 获取所有变量(经过过滤)(其他方法一样) Request::instance()->param(); // 获取所有变量(原始数据)(其他方法一样) Request::instance()->param(false); // 获取所有变量(包含上传文件) Request::instance()->param(true); 第二种获取方法: // 获取单个变量(其他方法一样) input('param.name'); // 获取所有变量(其他方法一样) input('param.'); 或者 // 因为input默认就是采用的param方式获取,所以可以这样简写 input('name'); input(''); ``` >## 对请求变量进行过滤与设置不过滤(不要相信任何用户传递过来的数据) ``` 第一种方式:在框架配置文件中添加默认过滤规则 // 默认全局过滤方法 用逗号分隔多个 'default_filter' => 'htmlspecialchars', 第二种方式:使用Request对象进行过滤 // 使用PHP内置的方法 Request::instance()->filter('htmlspecialchars'); // 过滤请求对象 Request::instance()->filter(['strip_tags','htmlspecialchars']), // 数组传入多个过滤方法 Request::instance()->param('username','','strip_tags,strtolower'); // 获取param变量 并依次调用strip_tags、strtolower函数过滤 Request::instance()->get('name','','htmlspecialchars'); // 获取get变量 并用htmlspecialchars函数过滤 Request::instance()->post('name','','org\Filter::safeHtml'); // 获取post变量 并用org\Filter类的safeHtml方法过滤 // 使用PHP内置的Filter ID进行过滤(该方式如果不符合会返回false,所以需要和默认值配合使用) Request::instance()->post('email','',FILTER_VALIDATE_EMAIL); 还可以简写 Request::instance()->post('email','','email'); // 对变量不进行过滤,直接获得原始数据 Request::instance()->get('name','',null); // 获取get变量 并且不进行任何过滤 即使设置了全局过滤 ``` > ## 获取请求的部分变量 ``` // 只获取id和name变量 Request::instance()->only('id,name'); Request::instance()->only(['id','name']); // 只获取GET请求的id和name变量 Request::instance()->only(['id','name'],'get'); // 只获取POST请求的id和name变量 Request::instance()->only(['id','name'],'post'); ``` > ## 排除请求的部分变量 ``` // 排除id和name变量 Request::instance()->except('id,name'); Request::instance()->except(['id','name']); // 排除GET请求的id和name变量 Request::instance()->except(['id','name'],'get'); // 排除POST请求的id和name变量 Request::instance()->except(['id','name'],'post'); ``` >## 变量修饰符(如果不加默认为/s,如果获取的变量是数组一定要加/a才能正确获取) >### input('变量类型.变量名/修饰符'); >### Request::instance()->变量类型('变量名/修饰符'); ``` input('get.id/d'); Request::instance()->get('id/d'); ``` |修饰符| 作用| |---|---| |s |强制转换为字符串类型| |d |强制转换为整型类型| |b |强制转换为布尔类型| |a |强制转换为数组类型| |f |强制转换为浮点类型|