2013-05-20 2 views
0

Привет, У меня возникли проблемы с использованием cURL (я не могу использовать file_get_contents, потому что мой веб-хост не разрешит), чтобы получить доступ к частям погоды wunderground api.Использование cURL с wunderground api

Когда я использую следующий код для доступа к информации о погоде у меня нет никаких проблем бы то ни было:

<? $json_url = 'http://api.wunderground.com/api/b2b4a1ad0a889006/geolookup/conditions 
    /q/IA/Cedar_Rapids.json'; 



// jSON String for request 
$json_string = '[http://api.wunderground.com/api/b2b4a1ad0a889006/geolookup/conditions 
/q/IA/Cedar_Rapids.json]'; 

// Initializing curl 
$ch = curl_init($json_url); 

// Configuring curl options 
$options = array(
CURLOPT_RETURNTRANSFER => true, 
); 

// Setting curl options 
curl_setopt_array($ch, $options); 

// Getting results 
$result = curl_exec($ch); // Getting jSON result string 

$parsed_json = json_decode($result); 
$location = $parsed_json->{'location'}->{'city'}; 
$temp_f = $parsed_json->{'current_observation'}->{'temp_f'}; 
echo "Current temperature in ${location} is: ${temp_f}\n"; 
?> 

Однако, когда я делаю небольшие изменения для того, чтобы получить данные о высоких и низких приливов, используя следующий код Я ничего не получаю:

<? $json_url = 'http://api.wunderground.com/api/b2b4a1ad0a889006/tide/q/NJ/Wildwood.json'; 



// jSON String for request 
$json_string = '[http://api.wunderground.com/api/b2b4a1ad0a889006/tide/q/NJ/Wildwood.json]'; 

// Initializing curl 
$ch = curl_init($json_url); 

// Configuring curl options 
$options = array(
CURLOPT_RETURNTRANSFER => true, 
); 

// Setting curl options 
curl_setopt_array($ch, $options); 

// Getting results 
$result = curl_exec($ch); // Getting jSON result string 

$tide_time = $parsed_json->{'tide'}->{'tideSummary'}->{'date'}->{'pretty'}; 
echo "High tide is at ${tide_time} "; 
?> 

Теперь я знаю, что этот вопрос может быть, что я имею дело с массивом во втором примере, но я не знаю, как изменить код. Я знаю, что запись для первого отлива - [3], и я пробовал сделать следующую модификацию без везения.

$tide_time = $parsed_json->{'tide'}->{'tideSummary'}->[3]->{'date'}->{'pretty'}; 
echo "High tide is at ${tide_time} "; 

Любая помощь была бы принята с благодарностью!

ответ

0

Второй параметр json_decode позволяет вам декодировать JSON в array вместо object. Попробуйте включить, что так что вы всегда знаете, что вы имеете дело с:

$response = json_decode($result, true);

Если это не может быть, вы не используете API правильно?