{mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系統變量,以及文件上(shang)傳信息。

檢測變量是否設置

可以使用has方法來檢測一個變量(liang)參數是否設置,如(ru)下(xia):

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

或者(zhe)使用助手函數

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

變量(liang)檢測可以支(zhi)持所有支(zhi)持的系統變量(liang)。

變量獲取

變量獲取使用 hinkRequest類的(de)如下方(fang)法及參數:

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量類型(xing)方法包括:

方法 描述
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請求的一種變量獲取方式,是系(xi)統推薦的獲取請求參(can)數的方法,用法如下(xia):

// 獲取當前請求的name變量
Request::instance()->param('name');
// 獲取當前請求的所有變量(liang)(經(jing)過過濾)
Request::instance()->param();
// 獲(huo)取當前請求的所有變量(原始數據)
Request::instance()->param(false);
// 獲取當前請求的所有變量(包含上傳文(wen)件)
Request::instance()->param(true);

param方法會(hui)把當前(qian)請求類(lei)型(xing)的參數和(he)PATH_INFO變(bian)量以及(ji)GET請求合并。

使用助手(shou)函數實現(xian):

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

因為input函數(shu)默認就采用PARAM變量讀取(qu)方式。

獲取GET變量

Request::instance()->get('id'); // 獲(huo)取(qu)某個get變量
Request::instance()->get('name'); // 獲取get變(bian)量
Request::instance()->get(); // 獲取(qu)所有的get變(bian)量(經過過濾的數組)
Request::instance()->get(false); // 獲取所有的get變量(原始數組(zu))

或者使用內置的助手函數input方法實現相同的功能:

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

注:pathinfo地址參(can)數不能通過get方(fang)法獲(huo)取,查(cha)看“獲(huo)取PARAM變量”

獲取POST變量

Request::instance()->post('name'); // 獲取(qu)某個post變量
Request::instance()->post(); // 獲取(qu)經過過濾的全(quan)部post變量
Request::instance()->post(false); // 獲取全部的(de)post原始變量

使用助(zhu)手(shou)函數(shu)實現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某(mou)個put變量
Request::instance()->put(); // 獲取全部(bu)的put變量(經過過濾)
Request::instance()->put(false); // 獲取全部(bu)的put原(yuan)始變量(liang)

使用助手函數(shu)實現:

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲(huo)取某個request變量(liang)
Request::instance()->request(); // 獲取全部的request變(bian)量(經過過濾(lv))
Request::instance()->request(false); // 獲(huo)取全部的request原(yuan)始變量數據

使用助(zhu)手(shou)函數實(shi)現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲取某個(ge)server變(bian)量(liang)
Request::instance()->server(); // 獲取全部的server變量

使用(yong)助手函數實現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某個(ge)session變量
Request::instance()->session(); // 獲取全部的session變量

使用助手函數實(shi)現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲(huo)取某(mou)個cookie變量
Request::instance()->cookie(); // 獲取全部的cookie變量(liang)

使(shi)用(yong)助手函數(shu)實現(xian):

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

變量過濾

 框架默(mo)認(ren)沒有設置(zhi)(zhi)任何過(guo)濾(lv)(lv)規則(ze),你可以(yi)是配置(zhi)(zhi)文件中設置(zhi)(zhi)全局的(de)過(guo)濾(lv)(lv)規則(ze):

// 默認(ren)全局過濾(lv)方法 用逗號分隔多個
'default_filter'         => 'htmlspecialchars',

也支持使用Request對象(xiang)進行全(quan)局變(bian)量的獲取過濾(lv),過濾(lv)方式包括函(han)數(shu)、方法過濾(lv),以及(ji)PHP內置(zhi)的Types of filters,我們可以設置(zhi)全(quan)局變(bian)量過濾(lv)方法,例如:

Request::instance()->filter('htmlspecialchars');

支持設(she)置(zhi)多個過濾方法,例(li)如:

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可以在獲(huo)取變(bian)量的時候添加過(guo)濾方法,例如(ru):

Request::instance()->get('name','','htmlspecialchars'); // 獲取get變(bian)量 并用htmlspecialchars函(han)數過濾
Request::instance()->param('username','','strip_tags'); // 獲取(qu)param變量 并用strip_tags函數過濾(lv)
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲(huo)取post變(bian)量 并(bing)用orgFilter類的(de)safeHtml方法過濾

可(ke)以(yi)支持傳入多個過濾規(gui)則,例如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲取param變量 并依次調用strip_tags、strtolower函數過濾

Request對象還(huan)支持PHP內置提(ti)供的Filter ID過濾,例如:

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

框架對FilterID做了(le)轉換支持,因此也可以使用字符(fu)串的方式,例(li)如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函(han)數(shu)的返回值來定義(yi)。

需(xu)要(yao)(yao)注意的(de)是,采用Filter ID 進行過(guo)濾(lv)的(de)話,如(ru)果不符合過(guo)濾(lv)要(yao)(yao)求的(de)話 會(hui)返回false,因此你需(xu)要(yao)(yao)配合默(mo)認值來確保最(zui)終的(de)值符合你的(de)規范。

例如,

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

就表示(shi),如果不是規范的email地址的話 返回空(kong)字符串。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取get變量 并且不進行任何(he)過濾(lv) 即(ji)使設置了全局過濾(lv)
Request::instance()->get('name','',null); 

獲取部分變量

如果你(ni)只(zhi)需要獲取當(dang)前請求(qiu)的(de)部分參數,可以使(shi)用:

// 只獲(huo)取(qu)當前請求的id和(he)name變量
Request::instance()->only('id,name');

或者使(shi)用數組方式(shi)

// 只獲取當前(qian)請求的id和name變量
Request::instance()->only(['id','name']);

默(mo)認獲取的(de)是(shi)當前請求(qiu)參數,如果需(xu)要(yao)獲取其它類(lei)型的(de)參數,可以使用第二個參數,例如:

// 只(zhi)獲取GET請(qing)求(qiu)的id和name變量
Request::instance()->only(['id','name'],'get');
// 只(zhi)獲取POST請求的id和name變量
Request::instance()->only(['id','name'],'post');

排除部分變量

也支(zhi)持排除某(mou)些變量獲(huo)取,例如

// 排除(chu)id和name變量(liang)
Request::instance()->except('id,name');

或者使(shi)用數組方式

// 排除id和name變量
Request::instance()->except(['id','name']);

同樣支持指定變(bian)量類(lei)型(xing)獲取:

// 排除GET請求(qiu)的id和(he)name變量
Request::instance()->except(['id','name'],'get');
// 排除POST請(qing)求(qiu)的id和name變量(liang)
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數(shu)支持對(dui)變量(liang)使(shi)用(yong)修飾符功(gong)能,可以更好的過濾變量(liang)。

用法如下:

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如(ru)果需要傳入(ru)字符(fu)(fu)串之外的變量可以(yi)使用下面的修(xiu)飾符(fu)(fu),包括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符才(cai)能正確獲取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目錄(lu)

深色
模式

切換
寬度

GET 、 输入变量-易优CMS {mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系統(tong)變量,以及文件上傳信息。

檢測變量是否設置

可以使用has方(fang)法來檢(jian)測(ce)一個變量參數(shu)是否設置,如下:

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

或者使用(yong)助手函數

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

變量(liang)檢測可以支持(chi)所有支持(chi)的系統變量(liang)。

變量獲取

變量獲取使用 hinkRequest類的(de)如下方(fang)法(fa)及(ji)參數(shu):

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量類型方法包(bao)括:

方法 描述
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請求(qiu)的一種變量獲(huo)取方式,是系(xi)統(tong)推薦的獲(huo)取請求(qiu)參數的方法,用法如下:

// 獲取當前請求的name變量
Request::instance()->param('name');
// 獲取當前(qian)請求的所有變(bian)量(經過(guo)過(guo)濾)
Request::instance()->param();
// 獲取當(dang)前請(qing)求的所有(you)變量(原始(shi)數據)
Request::instance()->param(false);
// 獲取當前請求的所有變量(包含(han)上傳文件)
Request::instance()->param(true);

param方法會把當前(qian)請求類型的參(can)數(shu)和PATH_INFO變量(liang)以及GET請求合并(bing)。

使用助手函(han)數實現:

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

因為input函數默認就采(cai)用PARAM變量讀取方式(shi)。

獲取GET變量

Request::instance()->get('id'); // 獲取某個get變量(liang)
Request::instance()->get('name'); // 獲(huo)取(qu)get變量
Request::instance()->get(); // 獲(huo)取所有的(de)get變量(經(jing)過(guo)過(guo)濾的(de)數組)
Request::instance()->get(false); // 獲取(qu)所有的get變量(原始數組)

或者使用內置的助手函數input方法實現相同的功能:

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

注(zhu):pathinfo地(di)址(zhi)參數不(bu)能通過get方法獲(huo)取(qu),查看“獲(huo)取(qu)PARAM變量”

獲取POST變量

Request::instance()->post('name'); // 獲取某個post變量
Request::instance()->post(); // 獲取經過過濾的全部post變量
Request::instance()->post(false); // 獲取全部的post原(yuan)始(shi)變(bian)量

使用(yong)助手函數實(shi)現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某(mou)個(ge)put變量(liang)
Request::instance()->put(); // 獲取(qu)全部的(de)put變(bian)量(經(jing)過過濾)
Request::instance()->put(false); // 獲取(qu)全(quan)部的put原始變量

使用助手函數實(shi)現:

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取某個request變量(liang)
Request::instance()->request(); // 獲取全部的request變量(liang)(經過過濾)
Request::instance()->request(false); // 獲(huo)取全部的(de)request原始(shi)變量數據

使用(yong)助手(shou)函(han)數實現(xian):

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲(huo)取某個server變量
Request::instance()->server(); // 獲取全(quan)部的server變量

使用助手函(han)數實現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某(mou)個session變量
Request::instance()->session(); // 獲取(qu)全部的session變量

使用助(zhu)手函數實現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲取某(mou)個cookie變(bian)量(liang)
Request::instance()->cookie(); // 獲取全部的cookie變量

使用(yong)助手函數實現(xian):

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

變量過濾

框(kuang)架默認沒有設置(zhi)(zhi)任何過濾規(gui)則(ze),你可以是配置(zhi)(zhi)文件中設置(zhi)(zhi)全局(ju)的過濾規(gui)則(ze):

// 默認全局(ju)過濾方法 用逗號分隔多個
'default_filter'         => 'htmlspecialchars',

也支持使用Request對象進行全(quan)局變(bian)量的(de)獲(huo)取(qu)過(guo)(guo)濾(lv),過(guo)(guo)濾(lv)方式(shi)包(bao)括函數、方法過(guo)(guo)濾(lv),以及PHP內置(zhi)的(de)Types of filters,我們(men)可以設置(zhi)全(quan)局變(bian)量過(guo)(guo)濾(lv)方法,例如(ru):

Request::instance()->filter('htmlspecialchars');

支持設置多個過濾方法,例如(ru):

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可以(yi)在獲(huo)取(qu)變(bian)量的時候添加過濾方法(fa),例如(ru):

Request::instance()->get('name','','htmlspecialchars'); // 獲取get變量 并(bing)用htmlspecialchars函數過濾
Request::instance()->param('username','','strip_tags'); // 獲取param變量 并用strip_tags函數過(guo)濾(lv)
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲(huo)取post變量(liang) 并用orgFilter類的(de)safeHtml方法過濾

可以支持傳入多(duo)個過濾(lv)規則,例(li)如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲取(qu)param變量 并(bing)依次(ci)調用strip_tags、strtolower函(han)數過濾

Request對象還支持PHP內(nei)置提供的Filter ID過(guo)濾,例如:

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

框(kuang)架(jia)對FilterID做了轉(zhuan)換支(zhi)持,因此也(ye)可(ke)以使(shi)用(yong)字符(fu)串的方(fang)式,例如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函(han)數的返回值來定義。

需要(yao)注意的是(shi),采用(yong)Filter ID 進行過(guo)濾的話,如果(guo)不符合過(guo)濾要(yao)求的話 會(hui)返(fan)回false,因此(ci)你需要(yao)配合默認值來確保最終的值符合你的規范。

例如,

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

就(jiu)表示(shi),如(ru)果不是規范(fan)的(de)email地址的(de)話 返回空字符(fu)串。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取(qu)get變(bian)量 并且不(bu)進(jin)行(xing)任何過濾 即使設(she)置了(le)全局(ju)過濾
Request::instance()->get('name','',null); 

獲取部分變量

 如果你只需要(yao)獲(huo)取(qu)當(dang)前請求的部分參數,可以使(shi)用:

// 只獲取當前請求(qiu)的id和name變量
Request::instance()->only('id,name');

或者使用(yong)數組方式

// 只獲取當前請求(qiu)的id和name變量
Request::instance()->only(['id','name']);

默認獲取的是當前請求參數(shu)(shu),如果需(xu)要獲取其(qi)它類(lei)型的參數(shu)(shu),可以(yi)使用(yong)第二個參數(shu)(shu),例如:

// 只獲取(qu)GET請求(qiu)的id和(he)name變量
Request::instance()->only(['id','name'],'get');
// 只獲取POST請求(qiu)的id和name變量(liang)
Request::instance()->only(['id','name'],'post');

排除部分變量

也支(zhi)持排除某(mou)些變(bian)量獲取,例(li)如

// 排除id和name變(bian)量
Request::instance()->except('id,name');

或者使(shi)用數組方(fang)式

// 排(pai)除id和(he)name變量
Request::instance()->except(['id','name']);

同樣支持指定變量類型獲取:

// 排(pai)除(chu)GET請求的id和name變量
Request::instance()->except(['id','name'],'get');
// 排除POST請求的(de)id和name變量(liang)
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數(shu)支持對變量使用修飾符(fu)功能,可以(yi)更好的過濾變量。

用法如下:

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如果需要(yao)傳入字符串之外的變量(liang)可以(yi)使(shi)用下面的修(xiu)飾符,包括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修(xiu)飾(shi)符才能(neng)正(zheng)確(que)獲取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目(mu)錄

深色
模式

切換
寬度

POST 、 输入变量-易优CMS {mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等(deng)系統變量,以(yi)及(ji)文件(jian)上傳信息。

檢測變量是否設置

可以使用has方法來檢測一個變量參數是否設置,如(ru)下:

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

或者使用助手(shou)函數

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

變(bian)量檢測(ce)可以支持所有支持的系統變(bian)量。

變量獲取

變量獲取使用 hinkRequest類的如下方法及參數:

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量類(lei)型方法包括:

方法 描述
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請求的一種變量獲(huo)取(qu)方式,是系統推薦的獲(huo)取(qu)請求參數的方法,用法如下:

// 獲取當(dang)前請求的name變量(liang)
Request::instance()->param('name');
// 獲取當前請(qing)求的(de)所有變量(liang)(經過過濾)
Request::instance()->param();
// 獲取當前請求的所有變(bian)量(原始數據)
Request::instance()->param(false);
// 獲取(qu)當前請(qing)求的所有變量(包含(han)上傳(chuan)文件)
Request::instance()->param(true);

param方法會(hui)把當前請(qing)求類型的參數和PATH_INFO變(bian)量以及GET請(qing)求合(he)并。

使用(yong)助手函數實(shi)現:

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

因為input函數默認就采(cai)用PARAM變量讀取方式(shi)。

獲取GET變量

Request::instance()->get('id'); // 獲取某個(ge)get變量
Request::instance()->get('name'); // 獲(huo)取(qu)get變量
Request::instance()->get(); // 獲取所有的get變量(經過(guo)過(guo)濾的數(shu)組)
Request::instance()->get(false); // 獲取所有的get變量(原始數組)

或者使用內置的助手函數input方法實現相同(tong)的功能:

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

注:pathinfo地(di)址參數不能通(tong)過get方法獲(huo)取,查看“獲(huo)取PARAM變量”

獲取POST變量

Request::instance()->post('name'); // 獲取某個post變(bian)量
Request::instance()->post(); // 獲取經過過濾的全部post變量
Request::instance()->post(false); // 獲取全部的post原(yuan)始變量(liang)

使用助手函數(shu)實現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某個put變量(liang)
Request::instance()->put(); // 獲取(qu)全(quan)部(bu)的put變量(經過(guo)過(guo)濾)
Request::instance()->put(false); // 獲取全部的put原(yuan)始變(bian)量

使(shi)用助手函(han)數實(shi)現:

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取某個request變量(liang)
Request::instance()->request(); // 獲(huo)取(qu)全部的request變量(經(jing)過(guo)過(guo)濾)
Request::instance()->request(false); // 獲(huo)取(qu)全部(bu)的request原(yuan)始變量數據

使用助手(shou)函數(shu)實(shi)現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲取某(mou)個server變量(liang)
Request::instance()->server(); // 獲取全部的server變量

使用助手函數(shu)實現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某個session變(bian)量
Request::instance()->session(); // 獲(huo)取全部的session變量(liang)

使用助手函(han)數(shu)實現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲取某個cookie變量
Request::instance()->cookie(); // 獲取全(quan)部的cookie變量(liang)

使(shi)用助(zhu)手函數實現:

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

變量過濾

框架默認沒有設置(zhi)任(ren)何(he)過(guo)濾規(gui)則,你(ni)可以是配置(zhi)文件(jian)中設置(zhi)全局(ju)的過(guo)濾規(gui)則:

// 默認全局過(guo)濾方法 用(yong)逗號分隔多個(ge)
'default_filter'         => 'htmlspecialchars',

也支持使用Request對(dui)象進(jin)行全局變(bian)(bian)量(liang)的獲取過(guo)濾(lv),過(guo)濾(lv)方(fang)式(shi)包括(kuo)函數、方(fang)法過(guo)濾(lv),以及(ji)PHP內置(zhi)(zhi)的Types of filters,我(wo)們可以設置(zhi)(zhi)全局變(bian)(bian)量(liang)過(guo)濾(lv)方(fang)法,例(li)如:

Request::instance()->filter('htmlspecialchars');

支持設(she)置多(duo)個過濾(lv)方法(fa),例如(ru):

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可以在獲(huo)取變量的(de)時候添加過濾(lv)方法,例如:

Request::instance()->get('name','','htmlspecialchars'); // 獲取get變(bian)量 并(bing)用htmlspecialchars函(han)數過(guo)濾
Request::instance()->param('username','','strip_tags'); // 獲取param變(bian)量 并用strip_tags函(han)數過濾
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲取post變量 并用(yong)orgFilter類的(de)safeHtml方(fang)法過(guo)濾

可(ke)以支(zhi)持傳入(ru)多個過濾規則,例如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲取param變量(liang) 并依(yi)次調用strip_tags、strtolower函數過(guo)濾

Request對象還支持PHP內置(zhi)提供的Filter ID過濾,例如(ru):

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

框架(jia)對FilterID做了轉換支持,因此也可以(yi)使用字符串的方式,例如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函數(shu)的(de)返回值來定義(yi)。

需要(yao)注意的(de)是,采用Filter ID 進(jin)行過(guo)濾(lv)的(de)話(hua),如果不符合(he)過(guo)濾(lv)要(yao)求(qiu)的(de)話(hua) 會返回(hui)false,因(yin)此你需要(yao)配合(he)默認值來確保最終的(de)值符合(he)你的(de)規范。

例如,

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

就(jiu)表示,如果(guo)不是規范的email地(di)址(zhi)的話 返回空字符串。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取get變量 并且不進(jin)行任何過(guo)(guo)濾 即(ji)使設(she)置了全局過(guo)(guo)濾
Request::instance()->get('name','',null); 

獲取部分變量

如(ru)果你只需要獲取當前請求的部(bu)分參數,可以使用:

// 只獲(huo)取當前(qian)請求(qiu)的id和name變(bian)量
Request::instance()->only('id,name');

或者使用數組方式

// 只(zhi)獲(huo)取(qu)當前請求的(de)id和name變(bian)量(liang)
Request::instance()->only(['id','name']);

默認獲取的是當前請求參數(shu),如(ru)果需(xu)要獲取其它類(lei)型的參數(shu),可以使用第二個參數(shu),例如(ru):

// 只獲(huo)取GET請求的id和name變量
Request::instance()->only(['id','name'],'get');
// 只獲(huo)取POST請求(qiu)的id和(he)name變量
Request::instance()->only(['id','name'],'post');

排除部分變量

也支持排除某些變量獲(huo)取,例如

// 排除id和name變量(liang)
Request::instance()->except('id,name');

或(huo)者使用數(shu)組方式

// 排(pai)除id和(he)name變(bian)量
Request::instance()->except(['id','name']);

同樣支持指定變(bian)量類型獲(huo)取:

// 排除GET請(qing)求的id和name變量
Request::instance()->except(['id','name'],'get');
// 排除POST請求的id和name變量
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數支持對變量使用修飾符功(gong)能,可以更好的(de)過濾變量。

用法如下(xia):

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如果需要傳入字符串之外的(de)變量可(ke)以使(shi)用下面的(de)修飾(shi)符,包括(kuo):

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符(fu)才能(neng)正確獲(huo)取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目錄

深色
模式(shi)

切換
寬度(du)

REQUEST 、 输入变量-易优CMS {mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系(xi)統變(bian)量,以(yi)及文件(jian)上(shang)傳(chuan)信息。

檢測變量是否設置

可以使用has方法來檢測一個(ge)變量參數是否(fou)設置,如下:

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

或(huo)者使(shi)用助手(shou)函數

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

變量檢測可以支(zhi)持所有(you)支(zhi)持的系統變量。

變量獲取

變量獲取使用 hinkRequest類的(de)如下(xia)方法及參數:

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量(liang)類型方法包括:

方法 描述
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請求的(de)一種變量獲取方(fang)式,是系統推薦的(de)獲取請求參(can)數的(de)方(fang)法(fa),用(yong)法(fa)如下:

// 獲取當前請求的name變量
Request::instance()->param('name');
// 獲(huo)取(qu)當前請求的(de)所(suo)有變量(經(jing)過過濾)
Request::instance()->param();
// 獲取當前請求的所有變量(原始數據)
Request::instance()->param(false);
// 獲(huo)取當前請求的所有變(bian)量(包含上傳文件)
Request::instance()->param(true);

param方法(fa)會把當(dang)前請(qing)求類型的參(can)數和PATH_INFO變量以及GET請(qing)求合并。

使用助(zhu)手函數(shu)實現(xian):

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

因為input函(han)數默認就采用PARAM變量讀取方式。

獲取GET變量

Request::instance()->get('id'); // 獲取某(mou)個(ge)get變量
Request::instance()->get('name'); // 獲取get變(bian)量
Request::instance()->get(); // 獲取(qu)所(suo)有的get變量(經過(guo)過(guo)濾(lv)的數組)
Request::instance()->get(false); // 獲取所有的(de)get變量(原始數(shu)組(zu))

或者使用內置的助手函數input方法(fa)實現相同的功能(neng):

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

注(zhu):pathinfo地址(zhi)參數不(bu)能通過(guo)get方法獲取,查看(kan)“獲取PARAM變量”

獲取POST變量

Request::instance()->post('name'); // 獲取某(mou)個post變量
Request::instance()->post(); // 獲取經過(guo)過(guo)濾的全部post變量(liang)
Request::instance()->post(false); // 獲取(qu)全部的post原始(shi)變(bian)量(liang)

使用助手(shou)函數實現(xian):

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某個(ge)put變量(liang)
Request::instance()->put(); // 獲(huo)取全(quan)部(bu)的(de)put變量(經過過濾)
Request::instance()->put(false); // 獲取全部的put原始變量

使用助手函數實現(xian):

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取某(mou)個request變量
Request::instance()->request(); // 獲取全部的request變量(liang)(經(jing)過過濾)
Request::instance()->request(false); // 獲取(qu)全部的request原始變量(liang)數據

使用(yong)助手(shou)函(han)數實現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲(huo)取某個server變量
Request::instance()->server(); // 獲(huo)取全部的(de)server變量

使用(yong)助手函數實現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某個session變量
Request::instance()->session(); // 獲取(qu)全部的session變量

使用助手函數實現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲取某個cookie變量
Request::instance()->cookie(); // 獲取全部的cookie變量

使(shi)用助手函數(shu)實(shi)現:

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

變量過濾

框架默認沒有設置(zhi)任(ren)何過(guo)濾(lv)規(gui)(gui)則,你可以是配置(zhi)文(wen)件中設置(zhi)全局的過(guo)濾(lv)規(gui)(gui)則:

// 默認全局過(guo)濾方法(fa) 用逗(dou)號(hao)分隔多(duo)個(ge)
'default_filter'         => 'htmlspecialchars',

也支持使用Request對(dui)象(xiang)進行全(quan)局變(bian)(bian)量的獲取(qu)過(guo)(guo)濾(lv),過(guo)(guo)濾(lv)方式包括(kuo)函數(shu)、方法(fa)(fa)過(guo)(guo)濾(lv),以及(ji)PHP內置的Types of filters,我們可以設(she)置全(quan)局變(bian)(bian)量過(guo)(guo)濾(lv)方法(fa)(fa),例如:

Request::instance()->filter('htmlspecialchars');

支持設置多個(ge)過濾方(fang)法,例如:

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可(ke)以(yi)在獲取(qu)變量的時候(hou)添加過濾方法,例如:

Request::instance()->get('name','','htmlspecialchars'); // 獲取get變量 并(bing)用htmlspecialchars函數(shu)過濾(lv)
Request::instance()->param('username','','strip_tags'); // 獲取param變量 并用strip_tags函數過濾
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲取post變量 并用orgFilter類的safeHtml方法過濾

可以支持傳入多個過濾規則,例如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲(huo)取param變(bian)量 并依(yi)次調用strip_tags、strtolower函數過濾

Request對象還支持PHP內置提供的Filter ID過濾,例(li)如:

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

框架對FilterID做(zuo)了轉換支持,因此也可(ke)以使用字符串的方式,例如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函數(shu)的返(fan)回(hui)值(zhi)來定義。

需(xu)要(yao)注意的是,采用Filter ID 進行過濾的話,如果不符合過濾要(yao)求的話 會返(fan)回false,因(yin)此你需(xu)要(yao)配合默認值來確保最終(zhong)的值符合你的規范。

例如,

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

就表示(shi),如果不是規范(fan)的(de)email地(di)址的(de)話 返(fan)回空字符串。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取get變(bian)量 并且不進行任(ren)何過濾(lv) 即(ji)使設置了全(quan)局過濾(lv)
Request::instance()->get('name','',null); 

獲取部分變量

如果你只需要獲(huo)取當前請(qing)求的部分(fen)參數,可以使用:

// 只獲取當前請求的id和(he)name變量(liang)
Request::instance()->only('id,name');

或者使用數組方式

// 只(zhi)獲取(qu)當前請(qing)求的id和name變量(liang)
Request::instance()->only(['id','name']);

 默認獲(huo)取的是(shi)當前(qian)請求參(can)數,如果(guo)需要獲(huo)取其它類(lei)型的參(can)數,可以使用第二個參(can)數,例如:

// 只獲取GET請求的id和name變(bian)量
Request::instance()->only(['id','name'],'get');
// 只獲取POST請求(qiu)的id和name變量
Request::instance()->only(['id','name'],'post');

排除部分變量

也支持(chi)排除(chu)某些變量獲取,例如

// 排(pai)除id和name變(bian)量
Request::instance()->except('id,name');

或者使用數組方式

// 排除(chu)id和name變量
Request::instance()->except(['id','name']);

同樣支持指(zhi)定變量類型獲取:

// 排除GET請(qing)求的id和name變量
Request::instance()->except(['id','name'],'get');
// 排除POST請求的id和name變量
Request::instance()->except(['id','name'],'post');

變量修飾符

input函(han)數支持對變(bian)量使用修飾符功能(neng),可(ke)以(yi)更(geng)好(hao)的過(guo)濾變(bian)量。

用法如下(xia):

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如果需要傳入字符(fu)串之外的變(bian)量可以使用(yong)下(xia)面的修飾符(fu),包括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符才能正(zheng)確獲取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目錄

深色
模式

切換
寬度

SERVER 、 输入变量-易优CMS {mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系統變(bian)量,以及(ji)文件上(shang)傳信息。

檢測變量是否設置

可以使用has方法(fa)來檢測一個(ge)變量參(can)數是否設置(zhi),如下:

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

或者使用助手函數

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

變(bian)量檢測(ce)可以(yi)支持(chi)所有支持(chi)的(de)系(xi)統變(bian)量。

變量獲取

變量獲取使用 hinkRequest類(lei)的如下(xia)方法及參數:

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量類型方法包(bao)括:

方法 描述
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請(qing)求(qiu)(qiu)的(de)一種變量獲取方式,是系(xi)統推薦的(de)獲取請(qing)求(qiu)(qiu)參數(shu)的(de)方法,用法如下:

// 獲取(qu)當前請求的name變量
Request::instance()->param('name');
// 獲(huo)取當(dang)前請(qing)求的(de)所有變(bian)量(經過過濾)
Request::instance()->param();
// 獲取當前請求的所有變量(liang)(原始數據)
Request::instance()->param(false);
// 獲取(qu)當(dang)前請(qing)求的所有變量(包含(han)上(shang)傳(chuan)文件)
Request::instance()->param(true);

param方法會(hui)把當前請求(qiu)類型的參數(shu)和PATH_INFO變(bian)量以及GET請求(qiu)合(he)并。

使用助手函數實現:

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

因為input函數(shu)默認就(jiu)采用PARAM變量讀(du)取方式。

獲取GET變量

Request::instance()->get('id'); // 獲取某個get變量(liang)
Request::instance()->get('name'); // 獲取get變量
Request::instance()->get(); // 獲取(qu)所有(you)的get變(bian)量(經(jing)過過濾的數組)
Request::instance()->get(false); // 獲(huo)取(qu)所有的(de)get變(bian)量(liang)(原始(shi)數組)

或者使用內置的助手函數input方法實現相同的功能:

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

注(zhu):pathinfo地址參(can)數(shu)不能通過get方法獲取,查(cha)看“獲取PARAM變量”

獲取POST變量

Request::instance()->post('name'); // 獲取某個post變(bian)量
Request::instance()->post(); // 獲取經(jing)過過濾的全部post變量(liang)
Request::instance()->post(false); // 獲取全部的(de)post原(yuan)始(shi)變量

使用助(zhu)手函數實現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某(mou)個(ge)put變量
Request::instance()->put(); // 獲取(qu)全部的put變量(經(jing)過過濾)
Request::instance()->put(false); // 獲取(qu)全部的put原始變量

使用助(zhu)手(shou)函數實現:

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取(qu)某個request變量
Request::instance()->request(); // 獲取全部的request變量(經過過濾)
Request::instance()->request(false); // 獲(huo)取全部(bu)的request原始變量數據

使用助(zhu)手函數實現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲取某個server變量
Request::instance()->server(); // 獲取全(quan)部的server變(bian)量

使(shi)用助手函(han)數(shu)實現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某個session變量
Request::instance()->session(); // 獲(huo)取全部的session變量(liang)

使用助手函數實(shi)現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲取某(mou)個cookie變量
Request::instance()->cookie(); // 獲取全部(bu)的cookie變量(liang)

使用助手函數實(shi)現:

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

變量過濾

框架默認沒有設置(zhi)任何過(guo)濾(lv)規則,你可(ke)以是配(pei)置(zhi)文件中(zhong)設置(zhi)全局(ju)的過(guo)濾(lv)規則:

// 默認全(quan)局(ju)過濾(lv)方法 用逗號分隔多個
'default_filter'         => 'htmlspecialchars',

也支持使用Request對(dui)象進行全(quan)局變量的(de)獲取過(guo)濾(lv),過(guo)濾(lv)方(fang)(fang)式包括函數、方(fang)(fang)法過(guo)濾(lv),以及PHP內(nei)置(zhi)(zhi)的(de)Types of filters,我們可(ke)以設置(zhi)(zhi)全(quan)局變量過(guo)濾(lv)方(fang)(fang)法,例如:

Request::instance()->filter('htmlspecialchars');

支持(chi)設置多(duo)個過濾方法,例如:

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可以在獲取變量的時候添加過濾方(fang)法,例如:

Request::instance()->get('name','','htmlspecialchars'); // 獲取(qu)get變(bian)量 并(bing)用htmlspecialchars函數(shu)過濾
Request::instance()->param('username','','strip_tags'); // 獲取param變量 并用strip_tags函數過濾
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲取post變量 并用orgFilter類(lei)的safeHtml方法過(guo)濾

可以支(zhi)持傳入多個(ge)過(guo)濾規則,例如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲取(qu)param變量(liang) 并依次調用strip_tags、strtolower函數(shu)過(guo)濾

Request對象還支(zhi)持PHP內置提供的Filter ID過濾,例如(ru):

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

框架對FilterID做了轉換支持,因此也可以使(shi)用(yong)字符串的方式,例如(ru):

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函數(shu)的返回值來定(ding)義(yi)。

需(xu)要注意的(de)是,采用Filter ID 進行過濾的(de)話,如果(guo)不符合過濾要求(qiu)的(de)話 會(hui)返回false,因(yin)此(ci)你(ni)需(xu)要配合默認(ren)值來確保最終(zhong)的(de)值符合你(ni)的(de)規(gui)范。

例如,

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

就表示,如果不是規(gui)范(fan)的email地(di)址的話 返回空字符(fu)串(chuan)。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲(huo)取get變(bian)量 并且不進行任何過濾(lv) 即(ji)使設置了全局過濾(lv)
Request::instance()->get('name','',null); 

獲取部分變量

如果你(ni)只需要獲(huo)取當前請求的部(bu)分參數,可以(yi)使用(yong):

// 只獲取(qu)當(dang)前(qian)請(qing)求(qiu)的id和name變量
Request::instance()->only('id,name');

或者使用數組方式

// 只獲取當前請求的id和name變(bian)量
Request::instance()->only(['id','name']);

默認(ren)獲取(qu)的(de)是當前請(qing)求參(can)數(shu)(shu),如(ru)果(guo)需要獲取(qu)其(qi)它類(lei)型的(de)參(can)數(shu)(shu),可以使(shi)用第二個參(can)數(shu)(shu),例如(ru):

// 只獲取GET請(qing)求的id和(he)name變量
Request::instance()->only(['id','name'],'get');
// 只獲取POST請求的id和name變量(liang)
Request::instance()->only(['id','name'],'post');

排除部分變量

也支(zhi)持排除某些變量獲取(qu),例(li)如

// 排(pai)除id和name變量
Request::instance()->except('id,name');

或(huo)者(zhe)使用數組方式(shi)

// 排(pai)除id和name變量
Request::instance()->except(['id','name']);

同樣(yang)支(zhi)持指定(ding)變(bian)量類(lei)型獲取:

// 排除GET請求的id和name變量
Request::instance()->except(['id','name'],'get');
// 排除POST請(qing)求的id和name變(bian)量
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數(shu)支(zhi)持(chi)對變量使用修飾(shi)符功能,可以更(geng)好的過濾變量。

用(yong)法(fa)如(ru)下:

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如果需要傳入(ru)字符串之外的變量可以使(shi)用下面(mian)的修飾符,包括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符才能正確獲取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目錄

深色
模式

切換
寬度

SESSION 、 输入变量-易优CMS {mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系(xi)統變量(liang),以及文件上傳信(xin)息(xi)。

檢測變量是否設置

可以使用has方法來(lai)檢測一個變量參數是否設置,如(ru)下:

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

或者(zhe)使用助手函(han)數(shu)

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

變量檢測可以支持所有支持的(de)系統(tong)變量。

變量獲取

變量獲取使用 hinkRequest類的如下方(fang)法(fa)及參數(shu):

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量(liang)類(lei)型方法包括:

方法 描述
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請求的(de)一(yi)種變量獲(huo)取(qu)方式,是系統推薦(jian)的(de)獲(huo)取(qu)請求參數(shu)的(de)方法(fa),用法(fa)如下(xia):

// 獲取當前請求(qiu)的name變(bian)量(liang)
Request::instance()->param('name');
// 獲取當前請求的所(suo)有變量(經過過濾)
Request::instance()->param();
// 獲取當前(qian)請求的所有變量(liang)(原(yuan)始數據)
Request::instance()->param(false);
// 獲取當前請求的所(suo)有變量(包含上傳文件)
Request::instance()->param(true);

param方法會把當前請求類型的(de)參數和PATH_INFO變量(liang)以及GET請求合并。

使用助手函數實現:

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

因為input函(han)數默認就采用PARAM變量讀取方(fang)式。

獲取GET變量

Request::instance()->get('id'); // 獲取某(mou)個(ge)get變(bian)量
Request::instance()->get('name'); // 獲取get變(bian)量(liang)
Request::instance()->get(); // 獲(huo)取所有(you)的get變量(經過過濾的數組)
Request::instance()->get(false); // 獲取所有的get變量(原始數(shu)組(zu))

或者使用內置的助手函數input方法實現(xian)相同的(de)功能:

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

 注:pathinfo地(di)址參數(shu)不(bu)能通過get方法獲取,查看(kan)“獲取PARAM變(bian)量”

獲取POST變量

Request::instance()->post('name'); // 獲取(qu)某個(ge)post變(bian)量
Request::instance()->post(); // 獲取經過過濾(lv)的全部(bu)post變量
Request::instance()->post(false); // 獲取全(quan)部的(de)post原(yuan)始變量

使用助手函數(shu)實(shi)現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某個put變量
Request::instance()->put(); // 獲取全部的(de)put變(bian)量(經過過濾)
Request::instance()->put(false); // 獲取全部(bu)的put原始變量

使用助手函數實現(xian):

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取某個request變(bian)量
Request::instance()->request(); // 獲(huo)取全部的request變(bian)量(經過過濾)
Request::instance()->request(false); // 獲取(qu)全部的request原始變量數據

使用助手函數實現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲取某(mou)個server變量
Request::instance()->server(); // 獲取全(quan)部的server變量

使用助手(shou)函(han)數實現(xian):

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某個session變量
Request::instance()->session(); // 獲取全(quan)部的session變量

使用助手函數實現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲(huo)取某個cookie變量
Request::instance()->cookie(); // 獲取全(quan)部(bu)的cookie變量

使用助手函數實(shi)現:

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

變量過濾

框架默認沒有設(she)置(zhi)任何(he)過(guo)濾(lv)規則,你可以是配置(zhi)文件中設(she)置(zhi)全局的過(guo)濾(lv)規則:

// 默認全(quan)局過濾方法 用逗號(hao)分隔(ge)多個
'default_filter'         => 'htmlspecialchars',

也支持使用Request對象(xiang)進行全局變量(liang)的獲(huo)取過(guo)濾(lv),過(guo)濾(lv)方式包括函數、方法(fa)過(guo)濾(lv),以及(ji)PHP內置(zhi)(zhi)的Types of filters,我們可以設置(zhi)(zhi)全局變量(liang)過(guo)濾(lv)方法(fa),例如:

Request::instance()->filter('htmlspecialchars');

支(zhi)持設置多個過(guo)濾方法,例如:

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也(ye)可以在獲取變量的時候添加過濾方法,例如:

Request::instance()->get('name','','htmlspecialchars'); // 獲(huo)取(qu)get變量 并用htmlspecialchars函數過(guo)濾
Request::instance()->param('username','','strip_tags'); // 獲取param變(bian)量 并用(yong)strip_tags函數過濾
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲取post變(bian)量(liang) 并用orgFilter類(lei)的safeHtml方法過濾(lv)

可以支持傳入(ru)多個過濾規則(ze),例如(ru):

Request::instance()->param('username','','strip_tags,strtolower'); // 獲取param變量 并(bing)依次調用strip_tags、strtolower函數過濾

Request對象還(huan)支持PHP內置提供的Filter ID過濾,例如(ru):

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

框(kuang)架(jia)對FilterID做了(le)轉(zhuan)換支持,因此(ci)也可以使用字(zi)符串(chuan)的方式,例如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函數的返回(hui)值來定(ding)義。

需要注意的是(shi),采用Filter ID 進行過濾的話(hua),如果不符合過濾要求的話(hua) 會返回false,因(yin)此(ci)你需要配(pei)合默認值來確保(bao)最終的值符合你的規范。

例如,

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

就表示,如果不是(shi)規范的email地址的話 返回(hui)空字符串(chuan)。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取get變量(liang) 并且不進(jin)行(xing)任何過濾 即使設置(zhi)了全局過濾
Request::instance()->get('name','',null); 

獲取部分變量

如果你只需要獲取當前請求(qiu)的部分參數,可以使用:

// 只獲取當前請求的(de)id和(he)name變量
Request::instance()->only('id,name');

或者使用數組方式(shi)

// 只獲取當(dang)前請(qing)求(qiu)的(de)id和name變量(liang)
Request::instance()->only(['id','name']);

默認(ren)獲取的(de)是當前(qian)請求參(can)數,如(ru)果(guo)需要獲取其它類(lei)型的(de)參(can)數,可以(yi)使用(yong)第二個參(can)數,例如(ru):

// 只獲取GET請求(qiu)的(de)id和(he)name變量(liang)
Request::instance()->only(['id','name'],'get');
// 只獲取POST請求的(de)id和name變量(liang)
Request::instance()->only(['id','name'],'post');

排除部分變量

也(ye)支(zhi)持排除某些變量獲取(qu),例如

// 排除id和(he)name變量(liang)
Request::instance()->except('id,name');

或者(zhe)使用數組方式

// 排除id和name變量(liang)
Request::instance()->except(['id','name']);

同樣支持(chi)指(zhi)定變(bian)量類型(xing)獲取:

// 排(pai)除GET請求的id和name變量
Request::instance()->except(['id','name'],'get');
// 排(pai)除POST請求的id和name變量
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數支持對變(bian)(bian)量使(shi)用修飾符功能(neng),可(ke)以更好的過濾變(bian)(bian)量。

用法如(ru)下(xia):

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如果需要傳入字符(fu)串之外的(de)變量可以使用下面的(de)修飾符(fu),包(bao)括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符(fu)才能正確獲(huo)取到(dao)。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目(mu)錄

深色
模式

切換
寬度

COOKIE 、 输入变量-易优CMS {mayi_des}

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等系(xi)統變(bian)量,以及文件上傳信息。

檢測變量是否設置

可以使用has方法來檢測一個變量參(can)數是(shi)否設置,如下:

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

或者使用助手(shou)函數(shu)

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

變量(liang)檢測可以(yi)支(zhi)(zhi)持(chi)所有(you)支(zhi)(zhi)持(chi)的系統變量(liang)。

變量獲取

變量獲取使用 hinkRequest類的(de)如(ru)下方法(fa)及參數(shu):

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量類(lei)型方法包括:

方法 描述
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請(qing)求(qiu)(qiu)的(de)一(yi)種變量獲取(qu)方式,是系(xi)統(tong)推薦(jian)的(de)獲取(qu)請(qing)求(qiu)(qiu)參數的(de)方法(fa),用法(fa)如下:

// 獲取當(dang)前請求的name變量
Request::instance()->param('name');
// 獲取(qu)當(dang)前請求(qiu)的所(suo)有(you)變量(經過過濾)
Request::instance()->param();
// 獲取當前(qian)請求的(de)所有變量(liang)(原(yuan)始(shi)數據(ju))
Request::instance()->param(false);
// 獲(huo)取當前請求的所有變量(包含上傳文件)
Request::instance()->param(true);

param方法會把當前(qian)請(qing)求類型(xing)的參數和(he)PATH_INFO變量以及GET請(qing)求合并。

使(shi)用助手(shou)函數實現:

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

因為input函(han)數默認(ren)就采用PARAM變量讀取方式。

獲取GET變量

Request::instance()->get('id'); // 獲取某個get變量
Request::instance()->get('name'); // 獲取get變量
Request::instance()->get(); // 獲取所(suo)有的get變量(經(jing)過(guo)過(guo)濾的數組(zu))
Request::instance()->get(false); // 獲取(qu)所有的get變量(原始數組(zu))

或者使用內置的助手函數input方法(fa)實現相同的功能:

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

注:pathinfo地(di)址參(can)數(shu)不(bu)能(neng)通過(guo)get方法獲(huo)取(qu),查(cha)看“獲(huo)取(qu)PARAM變量(liang)”

獲取POST變量

Request::instance()->post('name'); // 獲取某個post變量
Request::instance()->post(); // 獲取經過過濾(lv)的全(quan)部post變量
Request::instance()->post(false); // 獲(huo)取全部的post原始變量

使用助手函數實(shi)現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某個put變量
Request::instance()->put(); // 獲取全(quan)部的(de)put變量(經過(guo)過(guo)濾)
Request::instance()->put(false); // 獲取全部的put原始變量

使(shi)用助手函數實現(xian):

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取(qu)某個(ge)request變量
Request::instance()->request(); // 獲取全部的request變量(經過過濾)
Request::instance()->request(false); // 獲取(qu)全部的request原始變量數據

使用助手函數(shu)實現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲取(qu)某(mou)個server變量
Request::instance()->server(); // 獲取全部的server變量

使用助(zhu)手(shou)函數實(shi)現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某(mou)個session變量
Request::instance()->session(); // 獲取全部的session變量

使用助手函(han)數實現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲取某個cookie變量(liang)
Request::instance()->cookie(); // 獲取(qu)全部(bu)的(de)cookie變量

使用助手函數實(shi)現:

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

變量過濾

 框架默認沒(mei)有設置任何過濾(lv)規(gui)則,你(ni)可以是配置文件中設置全局的(de)過濾(lv)規(gui)則:

// 默認全(quan)局過(guo)濾方(fang)法 用(yong)逗號(hao)分隔(ge)多個
'default_filter'         => 'htmlspecialchars',

也支持使用Request對象進行全(quan)局變(bian)量的獲取過(guo)濾(lv)(lv),過(guo)濾(lv)(lv)方(fang)式包括(kuo)函(han)數(shu)、方(fang)法過(guo)濾(lv)(lv),以及PHP內置的Types of filters,我們可以設置全(quan)局變(bian)量過(guo)濾(lv)(lv)方(fang)法,例如:

Request::instance()->filter('htmlspecialchars');

支持設(she)置多個(ge)過濾方(fang)法,例如(ru):

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可(ke)以在獲取變量的時候(hou)添加過濾(lv)方法,例(li)如:

Request::instance()->get('name','','htmlspecialchars'); // 獲取get變量 并(bing)用htmlspecialchars函數過濾
Request::instance()->param('username','','strip_tags'); // 獲(huo)取param變量 并用(yong)strip_tags函(han)數過濾
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲取(qu)post變量 并用(yong)orgFilter類(lei)的(de)safeHtml方法過濾

可(ke)以支(zhi)持傳(chuan)入多個過濾規則,例如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲取param變量 并依次調用strip_tags、strtolower函數過濾

Request對象還支持PHP內置提供的Filter ID過濾,例如:

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

框架對FilterID做了轉換支持,因此也可以使用(yong)字(zi)符串(chuan)的方式,例如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函數的返回值(zhi)來定義。

需(xu)要(yao)注意的(de)是,采(cai)用Filter ID 進行(xing)過濾的(de)話,如果不符合(he)過濾要(yao)求的(de)話 會返回false,因此(ci)你需(xu)要(yao)配合(he)默認值來(lai)確保最終的(de)值符合(he)你的(de)規范。

例如,

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

就表示(shi),如果不(bu)是規范的email地址的話 返回空字符串。

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取get變量 并且不進行任何過(guo)濾 即使(shi)設置了全局過(guo)濾
Request::instance()->get('name','',null); 

獲取部分變量

如果你(ni)只需(xu)要獲取當前請求的部分參數,可(ke)以使(shi)用:

// 只獲(huo)取(qu)當前請(qing)求的(de)id和name變量
Request::instance()->only('id,name');

或者使(shi)用數組方式

// 只獲取當(dang)前(qian)請(qing)求(qiu)的id和name變量
Request::instance()->only(['id','name']);

默(mo)認獲(huo)取的(de)是(shi)當(dang)前請(qing)求參數(shu),如果需要(yao)獲(huo)取其它類(lei)型的(de)參數(shu),可(ke)以使用第二個(ge)參數(shu),例如:

// 只獲取(qu)GET請求的id和name變(bian)量
Request::instance()->only(['id','name'],'get');
// 只獲取POST請求(qiu)的id和(he)name變量
Request::instance()->only(['id','name'],'post');

排除部分變量

也支持排除某(mou)些變量獲取,例(li)如

// 排除(chu)id和(he)name變(bian)量(liang)
Request::instance()->except('id,name');

或(huo)者使用(yong)數(shu)組方式

// 排(pai)除id和name變(bian)量
Request::instance()->except(['id','name']);

同(tong)樣支持(chi)指定變量(liang)類型(xing)獲取:

// 排除GET請求的id和name變(bian)量
Request::instance()->except(['id','name'],'get');
// 排除POST請求的(de)id和name變(bian)量
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數支持對變(bian)量使用修飾符功能,可以(yi)更好的(de)過(guo)濾變(bian)量。

用法如下:

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如果需要傳入字符(fu)串之(zhi)外的(de)變量可(ke)以使(shi)用下面的(de)修飾符(fu),包括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符才能正確獲取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目錄

深色
模式

切換
寬度

ENV 等系統變量,以及文件上傳信息。 檢測變">

午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

輸入變量

概述

可以通過Request對象完成全局輸入變量的檢測、獲取和安全過濾,支持包括$_GET$_POST$_REQUEST$_SERVER$_SESSION$_COOKIE$_ENV等(deng)系統變量(liang),以及文件上傳信息。

檢測變量是否設置

可以使用has方法來檢測(ce)一個(ge)變(bian)量參數是否設置,如下:

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

或者使用(yong)助手函(han)數

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

變量檢測可以支持所有支持的系統(tong)變量。

變量獲取

變量獲取使用 hinkRequest類的(de)如下方法及參(can)數:

變量類型方法('變量名/變量修飾符','默認值','過濾方法')

變量(liang)類(lei)型方法包括:

方法 描述
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請(qing)求的一種變量獲(huo)取方(fang)式(shi),是(shi)系統(tong)推(tui)薦的獲(huo)取請(qing)求參數(shu)的方(fang)法,用法如下:

// 獲取當前(qian)請(qing)求的name變量
Request::instance()->param('name');
// 獲取當(dang)前請求的所有變量(經過過濾)
Request::instance()->param();
// 獲(huo)取當(dang)前(qian)請求的所有變量(原始數據(ju))
Request::instance()->param(false);
// 獲取當前請求(qiu)的所有變量(包含上傳(chuan)文件)
Request::instance()->param(true);

param方(fang)法(fa)會把當前請求(qiu)類型的參數和PATH_INFO變量以及GET請求(qiu)合并。

使用助(zhu)手函數(shu)實現:

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

因為input函數(shu)默(mo)認就采(cai)用PARAM變量(liang)讀(du)取方式。

獲取GET變量

Request::instance()->get('id'); // 獲取某個(ge)get變量
Request::instance()->get('name'); // 獲取(qu)get變量
Request::instance()->get(); // 獲取所有的get變量(經過(guo)過(guo)濾(lv)的數組)
Request::instance()->get(false); // 獲(huo)取所有的get變量(原始數(shu)組(zu))

或者使用內置的助手函數input方法(fa)實現相同的(de)功(gong)能:

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

注:pathinfo地址參數(shu)不能通過(guo)get方法獲(huo)取(qu),查(cha)看“獲(huo)取(qu)PARAM變量”

獲取POST變量

Request::instance()->post('name'); // 獲(huo)取某個post變量
Request::instance()->post(); // 獲取(qu)經過過濾的全(quan)部post變量
Request::instance()->post(false); // 獲取全部的post原始變量

使用助手函數實(shi)現:

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

獲取PUT變量

Request::instance()->put('name'); // 獲取某個put變量(liang)
Request::instance()->put(); // 獲取全(quan)部的(de)put變量(經(jing)過(guo)過(guo)濾(lv))
Request::instance()->put(false); // 獲取全部的put原(yuan)始變量(liang)

使用助手(shou)函數實現:

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

獲取REQUEST變量

Request::instance()->request('id'); // 獲取(qu)某(mou)個request變(bian)量
Request::instance()->request(); // 獲取(qu)全部的request變量(經過(guo)過(guo)濾)
Request::instance()->request(false); // 獲取(qu)全部的request原始變(bian)量數據

使用助手函數實現:

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

獲取SERVER變量

Request::instance()->server('PHP_SELF'); // 獲取某個server變(bian)量(liang)
Request::instance()->server(); // 獲取全部(bu)的server變量

使(shi)用助(zhu)手函數實現:

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

獲取SESSION變量

Request::instance()->session('user_id'); // 獲取某個session變量
Request::instance()->session(); // 獲取全(quan)部的session變量

使用(yong)助(zhu)手函數實現:

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

獲取Cookie變量

Request::instance()->cookie('user_id'); // 獲取某個cookie變(bian)量(liang)
Request::instance()->cookie(); // 獲取全部的cookie變量

使(shi)用助手函數實現(xian):

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

變量過濾

 框架(jia)默認沒有設置(zhi)任何過濾規則,你可以是配置(zhi)文件中設置(zhi)全(quan)局的過濾規則:

// 默認全局過濾(lv)方法(fa) 用逗(dou)號(hao)分隔(ge)多個
'default_filter'         => 'htmlspecialchars',

也支持使用Request對象進行全局(ju)變(bian)量的獲取過濾(lv),過濾(lv)方式包括(kuo)函數、方法過濾(lv),以及(ji)PHP內(nei)置的Types of filters,我們可以設置全局(ju)變(bian)量過濾(lv)方法,例如:

Request::instance()->filter('htmlspecialchars');

支持設(she)置多個過濾方法,例如:

Request::instance()->filter(['strip_tags','htmlspecialchars']),

也可以在獲(huo)取變(bian)量的時(shi)候(hou)添(tian)加過濾方法,例如:

Request::instance()->get('name','','htmlspecialchars'); // 獲取get變量 并用htmlspecialchars函(han)數過濾
Request::instance()->param('username','','strip_tags'); // 獲(huo)取(qu)param變量 并用strip_tags函數過濾
Request::instance()->post('name','','orgFilter::safeHtml'); // 獲取post變量(liang) 并(bing)用orgFilter類的(de)safeHtml方法過(guo)濾

可以支持傳入多個過(guo)濾規則,例(li)如:

Request::instance()->param('username','','strip_tags,strtolower'); // 獲(huo)取param變量 并(bing)依次調用strip_tags、strtolower函數過濾

Request對象還(huan)支(zhi)持PHP內置提供的(de)Filter ID過濾,例(li)如:

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

框架對FilterID做了轉(zhuan)換支持,因(yin)此也可以(yi)使用字符串(chuan)的(de)方式,例如:

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

采用字符串方式定義FilterID的時候,系統會自動進行一次filter_id調用轉換成Filter常量。

具體的字符串根據filter_list函數的(de)返回(hui)值來(lai)定義。

需要注(zhu)意(yi)的(de)是,采(cai)用Filter ID 進行過(guo)(guo)濾的(de)話,如果不符合(he)過(guo)(guo)濾要求的(de)話 會返回false,因此你需要配合(he)默認(ren)值來確保(bao)最(zui)終的(de)值符合(he)你的(de)規范。

例如,

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

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

如果當前不需要進行任何過濾的話,可以使用(V5.0.3+版本)

// 獲取get變量 并且(qie)不進行任(ren)何(he)過(guo)濾 即使設置了(le)全局過(guo)濾
Request::instance()->get('name','',null); 

獲取部分變量

如果你只需要獲(huo)取當前請求的部分參數,可以(yi)使(shi)用(yong):

// 只(zhi)獲取(qu)當(dang)前請(qing)求的id和name變(bian)量
Request::instance()->only('id,name');

或者使用數組方式

// 只獲取(qu)當前請求的(de)id和name變(bian)量
Request::instance()->only(['id','name']);

 默認獲取(qu)的(de)是當前請(qing)求參數(shu)(shu),如果需(xu)要獲取(qu)其它(ta)類(lei)型的(de)參數(shu)(shu),可以使用(yong)第二個參數(shu)(shu),例(li)如:

// 只獲取GET請求的id和name變量
Request::instance()->only(['id','name'],'get');
// 只獲取(qu)POST請(qing)求的(de)id和name變(bian)量
Request::instance()->only(['id','name'],'post');

排除部分變量

也支持排除某些變量獲取,例(li)如

// 排除id和(he)name變量
Request::instance()->except('id,name');

或者(zhe)使用(yong)數組方式

// 排除id和(he)name變量
Request::instance()->except(['id','name']);

同樣支持指定變量類型(xing)獲(huo)取(qu):

// 排除GET請(qing)求的id和name變量
Request::instance()->except(['id','name'],'get');
// 排(pai)除POST請求的id和name變量
Request::instance()->except(['id','name'],'post');

變量修飾符

input函數支(zhi)持對變(bian)量(liang)使用修飾符(fu)功能,可以更好的過濾變(bian)量(liang)。

用法如(ru)下:

input('變量類型.變量名/修飾符');

或者

Request::instance()->變量類型('變量名/修飾符');

例如:

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

ThinkPHP5.0版本默認的變量修飾符是/s,如(ru)果需要(yao)傳入字符串之外(wai)的變量可(ke)以使用下(xia)面的修(xiu)飾符,包括:

修飾符 作用
s 強制轉換為字符串類型
d 強制轉換為整型類型
b 強制轉換為布爾類型
a 強制轉換為數組類型
f 強制轉換為浮點類型

如果你要獲取的數據為數組,請一定注意要加上 /a 修飾符才能(neng)正確獲取到。

 
文檔最后更新時間:2019-11-29 09:09:02

文檔
目錄

深色
模式

切換
寬度