PHP函數(shù)import_request_variables()用法分析
本文實(shí)例分析了PHP函數(shù)import_request_variables()用法。分享給大家供大家參考,具體如下:
import_request_variables 函數(shù)可以在 register_global = off 時(shí),把 GET/POST/Cookie 變量導(dǎo)入全局作用域中。
描述
bool import_request_variables ( string types [, string prefix])
將 GET/POST/Cookie 變量導(dǎo)入到全局作用域中。如果你禁止了 register_globals,但又想用到一些全局變量,那么此函數(shù)就很有用。
你可以使用 types 參數(shù)指定需要導(dǎo)入的變量??梢杂米帜?G'、'P'和'C'分別表示 GET、POST 和 Cookie。這些字母不區(qū)分大小寫,所以你可以使用'g'、'p'和'c'的任何組合。POST 包含了通過(guò) POST 方法上傳的文件信息。注意這些字母的順序,當(dāng)使用“gp”時(shí),POST 變量將使用相同的名字覆蓋 GET 變量。任何 GPC 以外的字母都將被忽略。
prefix 參數(shù)作為變量名的前綴,置于所有被導(dǎo)入到全局作用域的變量之前。所以如果你有個(gè)名為“userid”的 GET 變量,同時(shí)提供了“pref_”作為前綴,那么你將獲得一個(gè)名為 $pref_userid 的全局變量。
如果你對(duì)導(dǎo)入其它全局變量(例如 SERVER 變量)感興趣,請(qǐng)考慮使用 extract()。
注: 雖然 prefix 參數(shù)是可選的,但如果不指定前綴,或者指定一個(gè)空字符串作為前綴,你將獲得一個(gè) E_NOTICE 級(jí)別的錯(cuò)誤。使用默認(rèn)錯(cuò)誤報(bào)告級(jí)別是不顯示注意(Notice)級(jí)別的錯(cuò)誤的。
<?php // This will import GET and POST vars // with an "rvar_" prefix import_request_variables("gp", "rvar_"); echo $rvar_foo; ?>
使用import_request_variables()函數(shù)可以有選擇地注冊(cè)全局變量集合。你可以使用該函數(shù)導(dǎo)入 $_GET、$_POST和$_COOKIE的值,還可以為每個(gè)導(dǎo)入的變量添加前綴(prefix)。
參數(shù)中types字符串中允許為g、p、c字符,或者3個(gè)字符間任意的組合。其中,“g”表示GET變量,“p”表示POST變量,“c”表示cookies。注意:3個(gè)字符的排列順序是有區(qū)別的,當(dāng)使用“pg”時(shí),POST變量將使用相同的名字覆蓋$_GET變量;反之,當(dāng)使用“gp”時(shí),$_GET變量數(shù)組將優(yōu)先于$_POST。
使用import_request_variable()函數(shù)實(shí)現(xiàn)變量導(dǎo)入的腳本例子如下:
//導(dǎo)入POST提交的變量值,前綴為post_ import_request_variable("p", "post_"); //導(dǎo)入GET和POST提交的變量值,前綴為gp_,GET優(yōu)先于POST import_request_variable("gp", "gp_"); //導(dǎo)入Cookie和GET的變量值,Cookie變量值優(yōu)先于GET import_request_variable("cg", "cg_");
如果我們?cè)趇mport_request_variables()函數(shù)中使用了“pg參數(shù)”,請(qǐng)看如下腳本實(shí)例:
<?php if(isset($_REQUEST['btn_submit'])){ echo "正常取得的表單POST變量值:".$_REQUEST['Username']."<br />"; import_request_variables("pg", "import_"); //顯示導(dǎo)入的變量名稱 echo "使用import_request_variables函數(shù)導(dǎo)入的變量值:".$import_Username; } ?> <form id="test_form" name="test_form" method="POST" action=""> 請(qǐng)輸入您的名字: <label> <input type="text" name="Username" id="Username" /> </label> <label> <input type="submit" name="btn_submit" id="btn_submit" value="提交" /> </label> <br /> </form>
該表單提示用戶輸入一個(gè)名字,完成并提交后,腳本會(huì)把提交的名字顯示在瀏覽器上。
注意:prefix前綴參數(shù)是必選的,如果未指定前綴,或者指定一個(gè)空字符串作為變量前綴,PHP會(huì)拋出一個(gè)E_NOTICE錯(cuò)誤。
import_request_variables()函數(shù)為我們提供一個(gè)中間方法,適用于如下幾種情況:
1. 當(dāng)用戶不能使用超級(jí)變量數(shù)組時(shí);
2. 在php.ini配置文件的register_globals參數(shù)為Off(PHP 5之后的版本默認(rèn)為Off)時(shí),使用import_request_variables將GET/POST/Cookie這幾個(gè)超級(jí)變量數(shù)組導(dǎo)入到全局作用域中。
3. 在開發(fā)時(shí),只要聲明了引入的變量范圍,就不必寫$_GET或$_REQUEST一堆很長(zhǎng)的超級(jí)全局?jǐn)?shù)組名稱了。
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php操作office文檔技巧總結(jié)(包括word,excel,access,ppt)》、《php日期與時(shí)間用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP數(shù)組函數(shù)array_multisort()用法實(shí)例分析
- PHP計(jì)算數(shù)組中值的和與乘積的方法(array_sum與array_product函數(shù))
- PHP數(shù)學(xué)運(yùn)算函數(shù)大匯總(經(jīng)典值得收藏)
- 詳解PHP匿名函數(shù)與注意事項(xiàng)
- PHP常見(jiàn)數(shù)組函數(shù)用法小結(jié)
- PHP匿名函數(shù)和use子句用法實(shí)例
- 簡(jiǎn)單談?wù)凱HP中strlen 函數(shù)
- PHP中array_keys和array_unique函數(shù)源碼的分析
- PHP查詢并刪除數(shù)據(jù)庫(kù)多列重復(fù)數(shù)據(jù)的方法(利用數(shù)組函數(shù)實(shí)現(xiàn))
- php強(qiáng)大的時(shí)間轉(zhuǎn)換函數(shù)strtotime
- PHP函數(shù)超時(shí)處理方法
- php的閉包(Closure)匿名函數(shù)初探
相關(guān)文章
php實(shí)現(xiàn)的在線人員函數(shù)庫(kù)
ME之前用的..找到了.. 在線人員函數(shù)庫(kù)2008-04-04javascript,php獲取函數(shù)參數(shù)對(duì)象的代碼
javascript,php獲取函數(shù)參數(shù)對(duì)象的代碼,需要的朋友可以參考下。2011-02-02[PHP]經(jīng)常用到的實(shí)用函數(shù)集合
[PHP]經(jīng)常用到的實(shí)用函數(shù)集合...2007-11-11如何使用PHP實(shí)現(xiàn)javascript的escape和unescape函數(shù)
本篇文章是對(duì)使用PHP實(shí)現(xiàn)javascript的escape和unescape函數(shù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06簡(jiǎn)單談?wù)刾hp中ob_flush和flush的區(qū)別
本文簡(jiǎn)單的對(duì)php中ob_flush和flush進(jìn)行了對(duì)比分析,得出了他們之間的區(qū)別,給需要的小伙伴參考下。2014-11-11PHP實(shí)現(xiàn)多維數(shù)組多字段自定義排序
這篇文章主要介紹了PHP實(shí)現(xiàn)多維數(shù)組多字段自定義排序,通過(guò)將待排序數(shù)組的各個(gè)數(shù)組的$field保存在一維數(shù)組fieldArr中,在傳入array_multisort中參與排序,相當(dāng)于對(duì)$field一維數(shù)組的排序,而后根據(jù)排序后的key重新構(gòu)建傳入的待排序數(shù)組,需要的朋友可以參考下2023-10-10