2017-02-14 13 views
0

У меня есть радиослужба Icecast, и мне нужно получить данные о передаче, Как и слушатели, Текущая песня и т. Д. Информация предоставляется мне в Json файл: http://213.5.176.74:8002/status-json.xsl Что мне нужно, чтобы создать переменные для хранения данных слушателей, текущей песни и т.д. Я пытался сделать это:Как создать переменную PHP с Json Из другого url

<?php 
$url="http://213.5.176.74:8002/status-json.xsl"; 
// Initiate curl 
$ch = curl_init(); 
// Disable SSL verification 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
// Will return the response, if false it print the response 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
// Set the url 
curl_setopt($ch, CURLOPT_URL,$url); 
// Execute 
$result=curl_exec($ch); 
// Closing 
curl_close($ch); 

// Will dump a beauty json :3 
var_dump(json_decode($result, true)); 

Когда я пишу код, указанный выше я получаю это:

array(1) { ["icestats"]=> array(7) { ["admin"]=> string(19) "[email protected]" ["host"]=> string(9) "127.0.0.1" ["location"]=> string(5) "Earth" ["server_id"]=> string(13) "Icecast 2.4.3" ["server_start"]=> string(31) "Wed, 08 Feb 2017 19:16:01 +0000" ["server_start_iso8601"]=> string(24) "2017-02-08T19:16:01+0000" ["source"]=> array(13) { ["audio_info"]=> string(10) "bitrate=24" ["genre"]=> string(3) "POP" ["listener_peak"]=> int(1) ["listeners"]=> int(0) ["listenurl"]=> string(28) "http://127.0.0.1:8002/stream" ["server_description"]=> string(6) "(null)" ["server_name"]=> string(6) "AutoDJ" ["server_type"]=> string(10) "audio/mpeg" ["server_url"]=> string(19) "https://habbosk.com" ["stream_start"]=> string(31) "Wed, 08 Feb 2017 19:19:02 +0000" ["stream_start_iso8601"]=> string(24) "2017-02-08T19:19:02+0000" ["title"]=> string(21) "AKONs Lonely Lyrics" ["dummy"]=> NULL } } } 

Проблема em заключается в том, что я не знаю, как создавать переменные с предыдущим контентом, поэтому я использую его на веб-сайте, где я буду ставить статистику радио. Я ценю ваши ответы. Я говорю по-испански, и я использую google translate

Приветствия.

ответ

0

Основываясь на том, что у вас есть ... вы близки!

Вам просто нужно проанализировать переменную из вложенных массивов, возвращенных вам.

Вот ваш же переменных данных, отделенный, чтобы показать вложенные отношения массива:

array(1) { 
    ["icestats"]=> array(7) { 
     ["admin"]=> string(19) "[email protected]" ["host"]=> string(9) "127.0.0.1" ["location"]=> string(5) "Earth" ["server_id"]=> string(13) "Icecast 2.4.3" ["server_start"]=> string(31) "Wed, 08 Feb 2017 19:16:01 +0000" ["server_start_iso8601"]=> string(24) "2017-02-08T19:16:01+0000" 
     ["source"]=> array(13) { 
      ["audio_info"]=> string(10) "bitrate=24" ["genre"]=> string(3) "POP" ["listener_peak"]=> int(1) ["listeners"]=> int(0) ["listenurl"]=> string(28) "http://127.0.0.1:8002/stream" ["server_description"]=> string(6) "(null)" ["server_name"]=> string(6) "AutoDJ" ["server_type"]=> string(10) "audio/mpeg" ["server_url"]=> string(19) "https://habbosk.com" ["stream_start"]=> string(31) "Wed, 08 Feb 2017 19:19:02 +0000" ["stream_start_iso8601"]=> string(24) "2017-02-08T19:19:02+0000" ["title"]=> string(21) "AKONs Lonely Lyrics" ["dummy"]=> NULL 
     } 
    } 
} 

Так вот исходный код ...

<?php 
$url="http://213.5.176.74:8002/status-json.xsl"; 
// Initiate curl 
$ch = curl_init(); 
// Disable SSL verification 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
// Will return the response, if false it print the response 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
// Set the url 
curl_setopt($ch, CURLOPT_URL,$url); 
// Execute 
$result=curl_exec($ch); 
// Closing 
curl_close($ch); 

И здесь мы обрабатываем переменная работает глубже

$result = json_decode($result, true); /* UPDATED */ 

$stats = $result['icestats']; 
echo 'Admin is: ' . $stats['admin']; 
echo 'Server ID is: ' . $stats['server_id']; 

// and deeper 
$source = $stats['source']; 
echo 'Genre is: ' . $source['genre']; 
echo 'Song Title is: ' . $source['title']; 
+0

Это не работает для меня :(Дайте мне этот результат: Admin: {Идентификатор сервера: {Жанр: {Song T Itle is: { –

+0

@ RodneyAraúz Извините, что вам нужно сохранить свою строку '$ result = json_decode ($ result, true);' see above updated –

+0

Большое вам спасибо. Это отлично! Я уже узнал об этом, поэтому у меня больше нет проблем –