2013-06-19 38 views
0

我對PHP相當陌生。我試圖將經典的asp vbscript函數轉換爲php。它循環訪問request.form值並生成一個字符串。我發現this article關於通過$_REQUEST循環。將經典的asp函數翻譯成php:通過request.form循環

這是VB功能:

obj = "{" 
    for each prod in request.Form 
    if prod <> "checkout" then obj = obj & "'" & prod & "':" & request.Form(prod) & "," 
    next 
obj = left(obj, len(obj)-1) & "}" 'take out last comma 

這是在成形後的典型數據:

checkout: true 
2012ORGANIC500ML: 1 

它生成此字符串:

{'2012ORGANIC500ML':1} 

我在PHP嘗試這個:

$obj = "{"; 
    foreach ($_REQUEST as $prod) { 
    if ($prod != "checkout") { $obj .= "'" . $prod . "':" . $_REQUEST[$prod] . ","; }; 
    }; 
$obj .= substr($obj, 0, -1) . "}"; 

它返回這種錯誤的字符串:

{'true':,'1':,{'true':,'1':} 

有人能指出我在正確的方向? 在此先感謝。

回答

1

如果你做foreach($ _REQUEST as $ prod),那麼你只會得到你的循環中的值,而不是密鑰。 那麼試試這個:

foreach ($_REQUEST as $key => $val) { 
    if ($key != "checkout") { $obj .= "'" . $key . "':" . $val . ","; }; 
    }; 

順便說一句...如果您需要在JSON格式的數據,你可以簡單地做json_encode($數據)。

$data = $_REQUEST; 
$checkout = $data['checkout']; // get your checkout var 
unset($data['checkout']);  // remove checkout from data 
$obj = json_encode($data);  // json encode your data to $obj 
+0

謝謝,使用json_encode()有幫助! – greener