2012-02-17 2 views
1

У меня есть этот публичный JSON https://raw.github.com/currencybot/open-exchange-rates/master/latest.json и мне нужно, чтобы извлечь из него данные, прямо сейчас я пытался что-то вроде этого:Получение информации из JSON массива с PHP

$input = file_get_contents("https://raw.github.com/currencybot/open-exchange-rates/master/latest.json"); 

$json = json_decode($input); 

echo $json[rates]->EUR; 

, но я получить пустую страницу, любое предложение? Благодаря !! Ste

+3

Вы уже попробовать '$ json-> rates-> EUR'? – Gumbo

ответ

6

json_decode либо возвращает объект, либо массив (при использовании второго параметра). Вы пытаетесь использовать оба.

Try:

$json = json_decode($input);  
echo $json->rates->EUR; 

ИЛИ

$json = json_decode($input, true); 
echo $json['rates']['EUR']; 

Как пустой страницы, пожалуйста, добавьте следующую строку в верхней части скрипта:

error_reporting(E_ALL); 
init_set('display_errors', true); 

Ошибка 500 указывает, что вы не можете разрешить этот URL-адрес, используя file_get_contents.

Для получения дополнительной информации отметьте here.

+0

+1 хороший .. и на 2 минуты быстрее при мышлении/печатании, чем мне! – ManseUK

+0

привет, ребята, спасибо за ответы, но остается неизменным, пустая страница:/ – user1215816

+0

Пожалуйста, см. Мое обновление, может решить ваш белый экран смерти. –

0

Ссылка выглядит как начинающаяся с https, в то время как file_get_contents не может иметь дело с SSL. Мое предложение использует curl.

+1

file_get_contents МОЖЕТ иметь дело с этими ссылками, если PHP был построен с помощью ssl, или если вы написали и зарегистрировали свой собственный поток https –

+0

, как я могу попробовать с помощью Curl? спасибо – user1215816

0

Прочитайте помощь для json_decode ... без второго параметра он возвращается и объект не массив ...

Либо:

$json = json_decode($input); 
echo $json->rates->EUR; 

или

$json = json_decode($input,true); 
echo $json['rates']['EUR']; 
0

Try:

$arr = json_decode($input, true); 

var_dump($arr); 
echo $arr['rates']['EUR']; 

Дополнительная литература: http://de.php.net/manual/de/function.json-encode.php

Для anexample с скручиваются и SSL прочитать: http://unitstep.net/blog/2009/05/05/using-curl-in-php-to-access-https-ssltls-protected-sites/

+0

он дает «NULL», не знаю почему :) – user1215816

+0

Тогда вы не получите результат от file_get_contents(). Попробуйте cURL вместо –

+0

Можете ли вы привести пример с cURL? я ищу информацию, но я немного смущен, спасибо :) – user1215816

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