溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在PHP中使用import_request_variables()函數(shù)

發(fā)布時間:2021-04-02 16:26:04 來源:億速云 閱讀:148 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)怎么在PHP中使用import_request_variables()函數(shù),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

import_request_variables 函數(shù)可以在 register_global = off 時,把 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)入的變量??梢杂米帜?#39;G'、'P'和'C'分別表示 GET、POST 和 Cookie。這些字母不區(qū)分大小寫,所以你可以使用'g'、'p'和'c'的任何組合。POST 包含了通過 POST 方法上傳的文件信息。注意這些字母的順序,當(dāng)使用“gp”時,POST 變量將使用相同的名字覆蓋 GET 變量。任何 GPC 以外的字母都將被忽略。

prefix 參數(shù)作為變量名的前綴,置于所有被導(dǎo)入到全局作用域的變量之前。所以如果你有個名為“userid”的 GET 變量,同時提供了“pref_”作為前綴,那么你將獲得一個名為 $pref_userid 的全局變量。

如果你對導(dǎo)入其它全局變量(例如 SERVER 變量)感興趣,請考慮使用 extract()。

注: 雖然 prefix 參數(shù)是可選的,但如果不指定前綴,或者指定一個空字符串作為前綴,你將獲得一個 E_NOTICE 級別的錯誤。使用默認(rèn)錯誤報告級別是不顯示注意(Notice)級別的錯誤的。

<?php
// This will import GET and POST vars
// with an "rvar_" prefix
import_request_variables("gp", "rvar_");
echo $rvar_foo;
?>

使用import_request_variables()函數(shù)可以有選擇地注冊全局變量集合。你可以使用該函數(shù)導(dǎo)入 $_GET、$_POST和$_COOKIE的值,還可以為每個導(dǎo)入的變量添加前綴(prefix)。

參數(shù)中types字符串中允許為g、p、c字符,或者3個字符間任意的組合。其中,“g”表示GET變量,“p”表示POST變量,“c”表示cookies。注意:3個字符的排列順序是有區(qū)別的,當(dāng)使用“pg”時,POST變量將使用相同的名字覆蓋$_GET變量;反之,當(dāng)使用“gp”時,$_GET變量數(shù)組將優(yōu)先于$_POST。

使用import_request_variable()函數(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_");

如果我們在import_request_variables()函數(shù)中使用了“pg參數(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="">
請輸入您的名字:
<label>
<input type="text" name="Username" id="Username" />
</label>
<label>
<input type="submit" name="btn_submit" id="btn_submit" value="提交" />
</label>
<br />
</form>

該表單提示用戶輸入一個名字,完成并提交后,腳本會把提交的名字顯示在瀏覽器上。

注意:prefix前綴參數(shù)是必選的,如果未指定前綴,或者指定一個空字符串作為變量前綴,PHP會拋出一個E_NOTICE錯誤。

import_request_variables()函數(shù)為我們提供一個中間方法,適用于如下幾種情況:

1. 當(dāng)用戶不能使用超級變量數(shù)組時;
2. 在php.ini配置文件的register_globals參數(shù)為Off(PHP 5之后的版本默認(rèn)為Off)時,使用import_request_variables將GET/POST/Cookie這幾個超級變量數(shù)組導(dǎo)入到全局作用域中。
3. 在開發(fā)時,只要聲明了引入的變量范圍,就不必寫$_GET或$_REQUEST一堆很長的超級全局?jǐn)?shù)組名稱了。

看完上述內(nèi)容,你們對怎么在PHP中使用import_request_variables()函數(shù)有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI