2016-11-08 39 views
1

我試圖找出如何編碼以下的數組:JSON編碼與的file_get_contents

$data[] = ''; 
//check if real player 
if($steam_name != null){ 
    $data['valid'] = true; 
    $data['url'] = "http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?key=key&vanityurl=$steam_name"; 
    echo json_encode($data, file_get_contents($data->url)); 
}else{ 
    $data['valid'] = false; 
    echo json_encode($data); 
} 

我知道如何獲取數據,但它似乎不被髮送至。

謝謝!

我的嘗試按照下面的答案。這是行不通的:

$data[] = ''; 
//check if real player 
if($steam_name != null){ 
    $data['valid'] = true; 
    $url = 'http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?'; 
    $params = [ 
     'key' => 'key', 
     'vanityurl' => $steam_name, 
    ]; 

    $data['url'] = $url . http_build_query($params); 
    echo json_encode($data); 

}else{ 
    $data['valid'] = false; 
    echo json_encode($data); 
} 
+0

喬治,這是JS,我需要知道它是如何通過爲好,考慮到它比預期的更thx芽。 –

回答

0

你應該使用http_build_query()來完成。

$url = 'http://api.steampowered.com/ISteamUser/ResolveVanityURL/v0001/?'; 
$params = [ 
    'key' => 'abc123', 
    'vanityurl' => $steam_name, 
]; 

$data['url'] = $url . http_build_query($params); 

這將處理參數的正確編碼。

此外,$data是這裏的一個數組,您不能稱之爲您的file_get_contents調用中的對象。我很驚訝你沒有得到例外。另外,json_encode doesn't accept parameters like that。試試這個:

// Store the API response in your data array 
$data['response'] = file_get_contents($data['url']); 

// Return it so you can use it 
return json_encode($data); 

如果響應是JSON,你可以對其進行解碼:

$data['response'] = json_decode(file_get_contents($data['url'])); 
+0

謝謝!那麼我的編碼看起來就像'json_encode($ data);'? –

+0

什麼是baseurl? –

+0

完成一個答案是正確的,芽。 –