2016-11-08 3 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

Должен закончить ответ правильно, бутон. –

Смежные вопросы