2012-08-03 58 views
1

我一直在使用這個例子錯誤JSON編碼和解碼的Oauth API - PHP

http://code.google.com/p/oauth-php/wiki/ConsumerHowTo#OAuth_Consumer 

而且在消費者頁我傳遞的PARAMS作爲JSON編碼字符串創建一個PHP的OAuth API。

$key = '35345345345vertrtertert'; // fill with your public key 
$secret = 'h rtyrtyr767567567567'; // fill with your secret key 
$url = "www.server.com/serverurl.php"; 

$options = array('consumer_key' => $key, 'consumer_secret' => $secret); 
OAuthStore::instance("2Leg", $options); 

$method = "POST"; 
$params = array(
      'radius' => '50', 
      'latitude'=>'13.35', 
      'longitude'=>'17.35' 
    ); 
$params = json_encode($params); 

而在服務器頁面(即serverurl.php)正在打印使用

print_r($_REQUEST); 

請求和我使用JSON解碼解碼的字符串,但我得到這個值作爲

Array 
(
    [radius] => 50 
    [latitude] => 13_35 
    [longitude] => 17_35 
) 

._取代經緯度 如何管理這個

+0

如果一直這樣做,只需執行'str_replace()'。這是一個冒險的解決方案,但它會起作用。 – Matt 2012-08-03 14:20:15

+0

但我不認爲這是很好的解決方案:) – Warrior 2012-08-03 14:21:12

回答

1

看來,在你的編碼/解碼過程中,這個值正試圖解析許多東西。如果你真的想用這些值作爲數字,你不應該把數組設置爲字符串。試試這個

$params = array(
    'radius' => 50, 
    'latitude'=> 13.35, 
    'longitude'=> 17.35 
); 

注意,我已刪除了周圍的數引號,以便將它們作爲編碼過程的數字處理。

+0

如果我刪除報價,foreach($ _ REQUEST as $ key => $ value) { \t $ array_val = $ key; } $ decode_val = json_decode($ array_val,true); print_r($ decode_val);這段代碼什麼都沒有輸出 – Warrior 2012-08-03 14:27:30

+0

@Warrior在執行json_encode之後你得到了什麼值'var_dump($ params)'? – 2012-08-03 14:29:38

+0

string(48)「{」radius「:50,」latitude「:13.35,」longitude「:17.35}」 – Warrior 2012-08-03 14:31:21