日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

put请求方式参数如何传_TP5请求(request)变量

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 put请求方式参数如何传_TP5请求(request)变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可以通過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變量是框架提供的用于自動識別GET、POST或者PUT請求的一種變量獲取方式,是系統推薦的獲取請求參數的方法,用法如下:

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'); 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 請求";
……

總結

以上是生活随笔為你收集整理的put请求方式参数如何传_TP5请求(request)变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。