<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 概述 可以通過`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'); ~~~ 變量檢測可以支持所有支持的系統變量。 ## 變量獲取 變量獲取使用`\think\Request`類的如下方法及參數: > ### 變量類型方法('變量名/變量修飾符','默認值','過濾方法') 變量類型方法包括: | 方法 | 描述 | | --- | --- | | 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變量是框架提供的用于自動識別`GET`、`POST`或者`PUT`請求的一種變量獲取方式,是系統推薦的獲取請求參數的方法,用法如下: ~~~ // 獲取當前請求的name變量 Request::instance()->param('name'); // 獲取當前請求的所有變量(經過過濾) Request::instance()->param(); // 獲取當前請求的所有變量(原始數據) Request::instance()->param(false); // 獲取當前請求的所有變量(包含上傳文件) Request::instance()->param(true); ~~~ > param方法會把當前請求類型的參數和PATH_INFO變量以及GET請求合并。 使用助手函數實現: ~~~ input('param.name'); input('param.'); 或者 input('name'); input(''); ~~~ 因為`input`函數默認就采用PARAM變量讀取方式。 ### 獲取`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.'); ~~~ > 注:pathinfo地址參數不能通過get方法獲取,查看“獲取PARAM變量” ### 獲取`POST`變量 ~~~ Request::instance()->post('name'); // 獲取某個post變量 Request::instance()->post(); // 獲取經過過濾的全部post變量 Request::instance()->post(false); // 獲取全部的post原始變量 ~~~ 使用助手函數實現: ~~~ input('post.name'); input('post.'); ~~~ ### 獲取`PUT`變量 ~~~ Request::instance()->put('name'); // 獲取某個put變量 Request::instance()->put(); // 獲取全部的put變量(經過過濾) Request::instance()->put(false); // 獲取全部的put原始變量 ~~~ 使用助手函數實現: ~~~ input('put.name'); input('put.'); ~~~ ### 獲取`REQUEST`變量 ~~~ Request::instance()->request('id'); // 獲取某個request變量 Request::instance()->request(); // 獲取全部的request變量(經過過濾) Request::instance()->request(false); // 獲取全部的request原始變量數據 ~~~ 使用助手函數實現: ~~~ input('request.id'); input('request.'); ~~~ ### 獲取`SERVER`變量 ~~~ Request::instance()->server('PHP_SELF'); // 獲取某個server變量 Request::instance()->server(); // 獲取全部的server變量 ~~~ 使用助手函數實現: ~~~ input('server.PHP_SELF'); input('server.'); ~~~ ### 獲取`SESSION`變量 ~~~ Request::instance()->session('user_id'); // 獲取某個session變量 Request::instance()->session(); // 獲取全部的session變量 ~~~ 使用助手函數實現: ~~~ input('session.user_id'); input('session.'); ~~~ ### 獲取`Cookie`變量 ~~~ Request::instance()->cookie('user_id'); // 獲取某個cookie變量 Request::instance()->cookie(); // 獲取全部的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'); // 獲取get變量 并用htmlspecialchars函數過濾 Request::instance()->param('username','','strip_tags'); // 獲取param變量 并用strip_tags函數過濾 Request::instance()->post('name','','org\Filter::safeHtml'); // 獲取post變量 并用org\Filter類的safeHtml方法過濾 ~~~ 可以支持傳入多個過濾規則,例如: ~~~ Request::instance()->param('username','','strip_tags,strtolower'); // 獲取param變量 并依次調用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地址的話 返回空字符串。 如果希望和全局的過濾方法合并的話,可以使用 ~~~ // 獲取get變量 并使用全局函數htmlspecialchars函數以及strtolower方法過濾 Request::instance()->get('name','','strtolower',true); ~~~ ## 獲取部分變量 如果你只需要獲取當前請求的部分參數,可以使用: ~~~ // 只獲取當前請求的id和name變量 Request::instance()->only('id,name'); ~~~ 或者使用數組方式 ~~~ // 只獲取當前請求的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'); ~~~ 或者使用數組方式 ~~~ // 排除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'); ~~~ ## 變量修飾符 `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`?修飾符才能正確獲取到。 > 本節主要講解了如何獲取請求過來的數據,包括全局變量。 ## 更改變量 如果需要更改請求變量的值,可以通過下面的方式: ~~~ // 更改GET變量 Request::instance()->get(['id'=>10]); // 更改POST變量 Request::instance()->post(['name'=>'thinkphp']); ~~~ 盡量避免直接修改`$_GET`?或者?`$_POST`數據,同時也不能直接修改`param`變量,例如下面的操作是無效的: ~~~ // 更改請求變量 Request::instance()->param(['id'=>10]); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看