2011-12-15 30 views
0

我目前使用以下格式從HTML表單$item_name=$_POST['item_name'];

這節省了值保存的值保存價值和名稱,但如何我還保存名稱屬性中的變量?

在此先感謝!

+0

名稱屬性是$ _POST的關鍵 – piotrekkr 2011-12-15 07:41:18

+1

`$ item_name_name ='item_name'`?你可以擴展更多你想做的事情嗎? – 2011-12-15 07:41:26

回答

3

假設你要存儲$ _ POST變量的每個元素作爲鍵值對,那麼你可以嘗試:

$var = array(); 
foreach($_POST as $key => $val) { 
    $var[$key] = $val; 
} 
-1

maye您注意到您必須使用該名稱才能訪問$_POST陣列並獲取該值。如果您想將名稱存儲在一個變量,也只是做:

$item_name_name = 'item_name'; 
$item_name_value = $_POST[$item_name_name]; 

可以也使用某種循環與像這樣根據名稱動態地創建變量:

foreach($_POST as $name => $value){ 
    $$name = $value; 
} 

這兩種方式在我看來都是不必要的和無用的,但是你沒有說明你到底想要達到什麼目的 - 所以這也許有幫助。

-1

的另一種方法:

$keysarray = array_keys ($_POST); 
print_r($keysarray); 

這會給你一切排列中的鍵

-1

您正在尋找的功能叫做extract

這將爲數組中的所有$key=>$val對創建變量。

$_EXAMPLE = array('bird' => 'chicken', 'dog' => 'greyhound'); 
export($_EXAMPLE); 
echo $bird; # prints "chicken" 
echo $dog; # prints "greyhound" 

當心雖然 - 這是一個巨大的安全隱患。其他一些答案中描述的解決方案也是如此。

這樣做的問題是用戶可以篡改POST數據,並設置她應該設置的參數以外的參數。如果他們在您的應用程序中設置變量名稱實際上是變量名稱,則可以覆蓋

$is_admin = false; 
$_EXAMPLE = array('bird' => 'chicken', 'dog' => 'greyhound', 'is_admin' => 'true'); 
export($_EXAMPLE); 

if ($is_admin) { # this will now evaluate to true. 
    # do sensitive stuff... 
} 
0

我節省了很多價值,並希望避免打字每一個出來。

請把你的頭腦放在第一位。
全局變量爲意圖需要手動輸入。
如果您想要一些自動化處理 - 只需將它們保存爲一個數組形式。

看起來像rdt.exe的答案是你在找什麼。