精华内容
下载资源
问答
  • TP5系统变量输出

    2018-11-19 11:20:00
    1、超全局变量 模板中: {$Think.sever.server_name} //全部小写,输出blog.cn 控制器: $_SERVER['SERVER_NAME'] //输出 blog.cn 2、PHP系统常量 模板中: {$Think.const.PHP_VERSION} //const关键字,输出...

     

     

    1、超全局变量

    模板中: {$Think.sever.server_name}              //全部小写,输出blog.cn

    控制器: $_SERVER['SERVER_NAME']         //输出 blog.cn

     

    2、PHP系统常量

    模板中: {$Think.const.PHP_VERSION}        //const关键字,输出5.6.27

    控制器: PHP_VERSION                          //输出5.6.27

     

    3、TP中的配置常量

    模板中: {$Think.config.database.hostname}        //config关键字,输出127.0.0.1

    控制器: Config::get('database.hostname')          //输出127.0.0.1

     

     

    控制器中:

    Config::set('database.hostname','1111')

    模板中:

    {$Think.config.database.hostname}
    
    //1111

     

     

    TP查看系统版本

    模板中: {$Think.VERSION}              //5.1.29 LTS

    控制器: \think\facade\App::version()         //5.1.29 LTS

     

    PHP超全局变量:

    $GLOBALS
    $_SERVER
    $_GET
    $_POST
    $_FILES
    $_COOKIE
    $_SESSION
    $_REQUEST
    $_ENV

     

    PHP系统常量:

    __FILE__

    __LINE__

    PHP_VERSION

    PHP_OS

    ...

     

    转载于:https://www.cnblogs.com/qq254980080/p/9982102.html

    展开全文
  • 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。检测变量是否设置可以使用has方法来检测一个...

    01f7a32b961128d008c4c735fa9405ab.png

    239f83e089c688e59b86ed2e0ba77ea3.png

    可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系统变量,以及文件上传信息。

    检测变量是否设置

    可以使用has方法来检测一个变量参数是否设置,如下:

    Request::instance()->has('id','get');Request::instance()->has('name','post');

    或者使用助手函数

    input('?get.id');input('?post.name');

    变量检测可以支持所有支持的系统变量。

    变量获取

    变量获取使用hinkRequest类的如下方法及参数:

    变量类型方法('变量名/变量修饰符','默认值','过滤方法')

    变量类型方法包括:

    方法描述
    param获取当前请求的变量
    get获取 $_GET 变量
    post获取 $_POST 变量
    put获取 PUT 变量
    delete获取 DELETE 变量
    session获取 $_SESSION 变量
    cookie获取 $_COOKIE 变量
    request获取 $_REQUEST 变量
    server获取 $_SERVER 变量
    env获取 $_ENV 变量
    route获取 路由(包括PATHINFO) 变量
    file获取 $_FILES 变量

    获取PARAM变量

    PARAM变量是框架提供的用于自动识别GETPOST或者PUT请求的一种变量获取方式,是系统推荐的获取请求参数的方法,用法如下:

    Request::instance()->param('name');Request::instance()->param();Request::instance()->param(false);Request::instance()->param(true);

    param方法会把当前请求类型的参数和PATH_INFO变量以及GET请求合并。72259ebd46c18c7d869f22ba8821f2b7.png

    使用助手函数实现:

    input('param.name');input('param.');或者input('name');input('');

    因为input函数默认就采用PARAM变量读取方式。

    获取GET变量

    Request::instance()->get('id'); Request::instance()->get('name'); Request::instance()->get(); Request::instance()->get(false); 

    或者使用内置的助手函数input方法实现相同的功能:

    input('get.id');input('get.name');input('get.');

    注:pathinfo地址参数不能通过get方法获取,查看“获取PARAM变量”

    获取POST变量

    Request::instance()->post('name'); Request::instance()->post(); Request::instance()->post(false); 

    使用助手函数实现:

    input('post.name');input('post.');

    获取PUT变量

    Request::instance()->put('name'); Request::instance()->put(); Request::instance()->put(false); 

    使用助手函数实现:

    input('put.name');input('put.');

    获取REQUEST变量

    Request::instance()->request('id'); Request::instance()->request(); Request::instance()->request(false); 

    使用助手函数实现:

    input('request.id');input('request.');

    获取SERVER变量

    Request::instance()->server('PHP_SELF'); Request::instance()->server(); 

    使用助手函数实现:

    input('server.PHP_SELF');input('server.');

    获取SESSION变量

    Request::instance()->session('user_id'); Request::instance()->session(); 

    使用助手函数实现:

    input('session.user_id');input('session.');

    获取Cookie变量

    Request::instance()->cookie('user_id'); Request::instance()->cookie(); 

    使用助手函数实现:

    input('cookie.user_id');input('cookie.');

    变量过滤

    支持对获取的变量进行过滤,过滤方式包括函数、方法过滤,以及PHP内置的Types of filters,我们可以设置全局变量过滤方法,例如:

    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','','orgFilter::safeHtml'); 

    可以支持传入多个过滤规则,例如:

    Request::instance()->param('username','','strip_tags,strtolower'); 

    Request对象还支持PHP内置提供的Filter ID过滤,例如:

    Request::instance()->post('email','',FILTER_VALIDATE_EMAIL);

    框架对FilterID做了转换支持,因此也可以使用字符串的方式,例如:

    Request::instance()->post('email','','email');

    采用字符串方式定义FilterID的时候,系统会自动进行一次filter_id调用转换成Filter常量。

    具体的字符串根据filter_list函数的返回值来定义。

    需要注意的是,采用Filter ID 进行过滤的话,如果不符合过滤要求的话 会返回false,因此你需要配合默认值来确保最终的值符合你的规范。

    例如,

    Request::instance()->post('email','',FILTER_VALIDATE_EMAIL);

    就表示,如果不是规范的email地址的话 返回空字符串。

    如果希望和全局的过滤方法合并的话,可以使用

    Request::instance()->get('name','','strtolower',true); 

    获取部分变量

    如果你只需要获取当前请求的部分参数,可以使用:

    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函数支持对变量使用修饰符功能,可以更好的过滤变量。

    用法如下:

    input('变量类型.变量名/修饰符');

    或者

    Request::instance()->变量类型('变量名/修饰符');

    例如:

    input('get.id/d');input('post.name/s');input('post.ids/a');Request::instance()->get('id/d');

    ThinkPHP5.0版本默认的变量修饰符是/s,如果需要传入字符串之外的变量可以使用下面的修饰符,包括:

    修饰符作用
    s强制转换为字符串类型
    d强制转换为整型类型
    b强制转换为布尔类型
    a强制转换为数组类型
    f强制转换为浮点类型

    如果你要获取的数据为数组,请一定注意要加上 /a 修饰符才能正确获取到。

    本节主要讲解了如何获取请求过来的数据,包括全局变量。

    更改变量

    如果需要更改请求变量的值,可以通过下面的方式:

    Request::instance()->get(['id'=>10]);Request::instance()->post(['name'=>'thinkphp']);

    尽量避免直接修改$_GET 或者 $_POST数据,同时也不能直接修改param变量,例如下面的操作是无效的:

    Request::instance()->param(['id'=>10]);

    获取请求类型

    在很多情况下面,我们需要判断当前操作的请求类型是GET、POST、PUT、DELETE或者HEAD,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求。

    ThinkPHP5.0 取消了用于判断请求类型的系统常量(如IS_GET,IS_POST等),统一采用 thinkRequest类 处理请求类型。

    用法如下

    // 是否为 GET 请求
    if (Request::instance()->isGet()) echo "当前为 GET 请求";
    // 是否为 POST 请求
    if (Request::instance()->isPost()) echo "当前为 POST 请求";
    // 是否为 PUT 请求
    if (Request::instance()->isPut()) echo "当前为 PUT 请求";
    // 是否为 DELETE 请求
    if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";
    // 是否为 Ajax 请求
    if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";
    // 是否为 Pjax 请求
    if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";
    // 是否为手机访问
    if (Request::instance()->isMobile()) echo "当前为手机访问";
    // 是否为 HEAD 请求
    if (Request::instance()->isHead()) echo "当前为 HEAD 请求";
    // 是否为 Patch 请求
    if (Request::instance()->isPatch()) echo "当前为 PATCH 请求";
    // 是否为 OPTIONS 请求
    if (Request::instance()->isOptions()) echo "当前为 OPTIONS 请求";
    // 是否为 cli
    if (Request::instance()->isCli()) echo "当前为 cli";
    // 是否为 cgi
    if (Request::instance()->isCgi()) echo "当前为 cgi";
    助手函数

    // 是否为 GET 请求
    if (request()->isGet()) echo "当前为 GET 请求";
    ……

    展开全文
  • 输入变量可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。1、可以使用has方法来检测一个变量...

    输入变量

    可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。

    1、可以使用has方法来检测一个变量参数是否设置

    Request::instance()->has('id','get');

    Request::instance()->has('name','post');

    或者使用助手函数

    input('?get.id');

    input('?post.name');

    2、请求类型(判断)

    // 是否为 GET 请求

    if (request()->isGet()) echo "当前为 GET 请求";

    // 是否为 POST 请求

    if (request()->isPost()) echo "当前为 POST 请求";

    // 是否为 PUT 请求

    if (Request::instance()->isPut()) echo "当前为 PUT 请求";

    // 是否为 DELETE 请求

    if (Request::instance()->isDelete()) echo "当前为 DELETE 请求";

    // 是否为 Ajax 请求

    if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";

    // 是否为 Pjax 请求

    if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";

    // 是否为手机访问

    if (Request::instance()->isMobile()) echo "当前为手机访问";

    助手函数

    // 是否为 GET 请求

    if (request()->isGet()) echo "当前为 GET 请求";

    2、变量获取

    变量获取使用\think\Request类的如下方法及参数:

    变量类型方法('变量名/变量修饰符','默认值','过滤方法')

    // 获取当前请求的name变量

    Request::instance()->param('name');// 获取当前请求的所有变量(经过过滤)

    Request::instance()->param();// 获取当前请求的所有变量(原始数据)

    Request::instance()->param(false);// 获取当前请求的所有变量(包含上传文件)

    Request::instance()->param(true);

    使用助手函数实现:

    input('param.name');

    input('post.');

    或者

    input('name');

    input('');

    获取GET变量

    Request::instance()->get('id'); // 获取某个get变量

    Request::instance()->get('name'); // 获取get变量

    Request::instance()->get(); // 获取所有的get变量(经过过滤的数组)

    Request::instance()->get(false); // 获取所有的get变量(原始数组)

    使用内置的助手函数input方法实现相同的功能:

    input('get.id');

    input('get.name');

    input('get.');

    获取POST变量

    Request::instance()->post('name'); // 获取某个post变量

    Request::instance()->post(); // 获取经过过滤的全部post变量

    Request::instance()->post(false); // 获取全部的post原始变量

    使用助手函数实现:

    input('post.name');

    input('post.');

    展开全文
  • tp5获取不到get值

    千次阅读 2018-04-01 14:27:39
    我们探究为什么pathinfo中的参数$_GET无法正常获取?能产生这样疑问的朋友其实陷入tp3给我们带来的认知误区。...其中就有一个对$_GET这个全局变量的使用问题,在有些情况下,tp5无法使用$_GET获取数据?如果你...

    我们探究为什么pathinfo中的参数$_GET无法正常获取?能产生这样疑问的朋友其实陷入tp3给我们带来的认知误区。

    使用过tp5和tp3版本朋友,会发现tp5完全是thinkphp的一次重构。给我们的不是版本的升级,完全就是两个不同的框架嘛。如果用习惯了tp3,断崖式跳到了tp5,难免会不适应。

    其中就有一个对$_GET这个全局变量的使用问题,在有些情况下,tp5无法使用$_GET获取数据?

    如果你的请求的地址参数是以pathinfo形式,这样参数是无法用$_GET去获取的,同样也不能使用系统中的get方法。

    比如:

    //请求地址"http://www.xxx.com/index/user/uid/100"
    
    public function user() {
        print_r($_GET['uid']);//获取不uid,会丢出一个异常
        print_r(input('get.uid'))//结果为空
        print_r(input('id'))//ok,正常获取
        print_r(input('param.id'))//ok,正常获取
        print_r(Request::instance()->param('id'))//ok,正常获取
        print_r(Request::instance()->get('id'))//结果为空
    }

    以上方法都是tp5获取常见的get参数的获取方式,结果能验证上面的结论。我们再看看以下地址请求:

    
    //请求地址为"http://www.xxx.com/index/user?uid=100"
    
    public function user() {
        print_r($_GET['uid']);//ok,正常获取
        print_r(input('get.uid'))//ok,正常获取
        print_r(input('id'))//ok,正常获取
        print_r(input('param.id'))//ok,正常获取
        print_r(Request::instance()->param('id'))//ok,正常获取
        print_r(Request::instance()->get('id'))//ok,正常获取
    }

    这样普通传参方式,get方法和$_GET就能正常获取。我们再看看混合式地址方式

    //请求地址为"http://www.xxx.com/index/user/uid/100?name=chenxing"
    public function user() {
        print_r($_GET);//只能获取name值
        print_r(input('get.'))//只能获取name值
        print_r(input(''))//ok,正常获取所以值
        print_r(input('param.'))//ok,正常获取所以值
        print_r(Request::instance()->param(''))//ok,正常获取所以值
        print_r(Request::instance()->get(''))//只能获取name值
    }

    混合式地址比较乱,但在ajax请求时生成地址很有可能是这种混合式。

    上面的三种请求参数地址在我们日常开发中比较常见,那么能够正常获取的请用系统的param方式获取,这个是最兼容的获取方式

    回到问题,我们探究为什么pathinfo中的参数$_GET无法正常获取?能产生这样疑问的朋友其实陷入tp3给我们带来的认知误区。在tp3中上面的请求的三种方式都可以用$_GET获取其中的所有参数,久而久之你就习惯了这种写法,然后就把这种获取方式变成理所当然。我们撇开框架pathinfo地址同样无法用$_GET获取,对于地址中的get请求的参数必须是以”?“开始的。那么为什么tp3可以呢?因为tp3把pathinfo中的参数整合到了get请求中。

    现在大家应该能够明白的感受到开头提到的tp3到tp5这种断崖式升级了吧。忘掉tp3,让tp5在我们手中快活的游走。

    tp5的开发手册:https://www.kancloud.cn/manual/thinkphp5/118003

    原文地址:http://www.qiusuoweb.com/72.html



    展开全文
  • 说明:Tp3.2中url使用__MODULE__ 此名称是系统自带的 ,但是tp5 全部去除了这些系统的全局变量 Tp5可以在config.php文件中进行输出替换 TP3 __MODULE__ 就是 后面的User/add就是控制器和方法,这个...
  • tp5视图

    2019-08-23 17:02:07
    视图可以用来存储模板变量 最终调用模板引擎 将(模板变量) 与 (模板文件)解析为输出的Web界面 View::instance() 单例模式,创建全局唯一的视图对象 public static function instance($engine = [], $replace ...
  • TP5的配置与目录

    2019-08-25 15:25:04
    TP5的配置 ThinkPHP提供了灵活的全局配置功能,采用最有效率的PHP返回数组方式定义,支持惯例配 置、公共配置、模块配置、扩展配置、场景配置、环境变量配置和动态配置。 对于有些简单的应用,你无需配置任何配置...
  • TP5框架访问过程

    2020-09-07 10:55:54
    1. 定义全局变量,主要是各文件夹路径的定义,以及环境变量的检查(比如服务器是否是windows) 2. 加载libary\think\loader.php文件,注册自动加载机制,注册异常处理机制。 3. 加载根目录下的环境变量文件(.env),...
  • tp5使用$_GET获取不到数据?

    千次阅读 2018-05-05 15:53:11
    导读:我们探究为什么pathinfo中的参数$_GET无法正常获取?能产生这样疑问的朋友其实陷入tp3给我们带来的认知误区。...其中就有一个对$_GET这个全局变量的使用问题,在有些情况下,tp5无法使用$_GET获取数据?...
  • 一、TP5模板中使用SESSION、常量、系统全局变量: {eq name='Request.session.wap.id' value='16'}{/eq} 或{$Request.session.wap.id} <a href="{:url('test/index')}?id=9">{$Think.UFO}当前链接测试<...
  • TP5 接收表单参数 input

    万次阅读 2017-09-25 11:50:58
    可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息。 检测变量是否设置 可以使用has方法来检测一...
  • 其中就有一个对$_GET这个全局变量的使用问题,在有些情况下,tp5无法使用$_GET获取数据?如果你的请求的地址参数是以pathinfo形式,这样参数是无法用$_GET去获取的,同样也不能使用系统中的get方法。比如:...
  • tp5源码分析之视图

    2018-02-23 17:41:33
    视图可以用来存储模板变量最终调用模板引擎 将(模板变量) 与 (模板文件)解析为输出的Web界面View::instance()单例模式,创建全局唯一的视图对象public static function instance($engine = [], $replace = []) ...
  • 对于php超全局变量$__FILE的理解 数据传输有传输必定有接收函数 前端代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传文件</title&g...
  • (3)学习tp5之配置文件

    千次阅读 2018-04-01 18:39:06
    个人理解:全局的意思是,在哪个文件下都可以访问。局部我到没测试1、应用的配置文件是全局;2、模块的配置文件是局部;注意:不同的安装方式,可能你...这时候就需要使用自定义文件了4、环境变量配置文件,也是全...
  • 在使用each()时,each()里面只能使用局部变量,当使用外部变量时会报未定义变量的错误,但是有时候我们还必须使用外部变量,就需要想是时作用域的问题,但是如果使用 global 全局虽然不报错,但是打印出来是null ,...
  •  习惯使用__PUBLIC__全局替换的就在配置文件里 'view_replace_str' => [ '__PUBLIC__'=>'/admin/', '__STATIC__' => '', '__ROOT__'=>'' ],  第二种:  直接在配置文件里自己定义变量  ...
  • 设置全局变量3. 然后在请求方法中使用问题原因解决方式 在进行前后端分析开发的时候,前端使用的是element-admin框架进行开发,后台使用的是TP5框架,不管哪个版本TP都无法接收Vue项目POST传过来的参数。然而使用...
  • 使用过tp5和tp3版本朋友,会发现tp5完全是thinkphp的一次重构。给我们的不是版本的升级,...其中就有一个对$_GET这个全局变量的使用问题,在有些情况下,tp5无法使用$_GET获取数据? 如果你的请求的地址参数是以pa...
  • tp5与tp3 的全局配置变量不一样 tp3中使用的是C方法 【参考tp3中C方法配置请点击】 tp5使用的是config方法 ThinkPHP5扩展配置目录extra中自定义配置文件的管理方法 方法位置/thinkphp/library/think/Config/—get...
  • 在TP5.0中查阅tp5官方文档,注意:5.0取消了URL模式的概念,并且普通模式的URL访问不再支持。phthinfo 是什么? PHP中的全局变量$_SERVER['PATH_INFO']是一个很有用的参数,众多的CMS系统在美化自己的URL的时候,都...
  • 这里写目录标题【1】php超全局变量【2】php系统常量【3】thinkphp 常量参考3.1预定义常量3.2路径常量3.2系统常量【4】php魔术4.1php魔术常量4.2php魔术方法【5】thinkphp魔术5.1 tp魔术方法5.2tp模板魔术常量 ...
  • ThinkPHP5中raw的作用

    千次阅读 2019-06-19 11:03:00
    tp5中,我们一般在模板中输出变量是这样的:{$test} 但是有时候在有些源码中我们可以看到这样的方式:{$test|raw} 这个时候如果你去找手册会发现,全文基本没有提到这个raw的作用。 那么根据{}中|的作用理解,...
  • TCP/IP详解 卷2:实现--源代码

    热门讨论 2012-10-19 12:35:08
    2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 2.5.3 m_retry函数 33 2.5.4 mbuf锁 ...
  •  5.3.1 sql*plus的环境变量  5.3.2 sql*plus站点配置文件(site profile)  5.3.3 sql*plus用户配置文件(user profile)  5.4 sql*plus的启动  5.5 sql*plus专有命令介绍  5.5.1 登录,注销命令  ...
  • TCP-IP详解卷2:实现.part1

    热门讨论 2010-05-28 11:38:07
    2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 2.5.3 m_retry函数 33 2.5.4 mbuf锁 34 2.6 m_devget和m_...
  • TCP-IP详解卷2:实现.part2

    热门讨论 2010-05-28 11:53:53
    2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 2.5.3 m_retry函数 33 2.5.4 mbuf锁 34 2.6 m_devget和m_...
  • 2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 2.5.3 m_retry函数 33 2.5.4 mbuf锁 34 2.6 m_devget和m_...
  • TCP/IP详解 卷2:实现--详细书签版

    热门讨论 2012-10-17 20:56:17
    2.2.1 全局变量 27 2.2.2 统计 28 2.2.3 内核统计 28 2.3 mbuf的定义 29 2.4 mbuf结构 29 2.5 简单的mbuf宏和函数 31 2.5.1 m_get函数 32 2.5.2 MGET宏 32 2.5.3 m_retry函数 33 2.5.4 mbuf锁 ...

空空如也

空空如也

1 2 3
收藏数 46
精华内容 18
热门标签
关键字:

tp5全局变量