Здравствуйте.
Использовал я под свои нужды этот код:
пишет aleksanders:
Короче, если что не так, вы хоть не смейтесь. ))) Главное работает...
<?php
$data = file_get_contents('хттп://127.0.0.1:88/status.xsl?mount=/radio');
function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
if(antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>") ==''){$data = file_get_contents('хттп://127.0.0.1:88/status.xsl?mount=/nonstop');}
$Mount_started = antara($data, "Content Type:</td>\n<td class=\"streamdata\">","</td>");
$Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
$Curr_listens=$Current_listeners2+$Current_listeners+$hellp_curr_listeners;
$Peak_listens=$Peak_listeners2+$Peak_listeners+$hellp_peak_listeners;
$staylst=$Curr_listens+1;
echo ''.$Current_song.'';
?>
За ненадобностью выбросил лишнее (может и не корректно...) и получилось вот что:
<?php
$data = file_get_contents("хттп://127.0.0.1:88/status.xsl?mount=/radio");
function antara($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
if ($ini == 0) return "";
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$Current_song = antara($data, "Current Song:</td>\n<td class=\"streamdata\">","</td>");
echo "Сейчас играет : ".$Current_song."";
?>
Все бы было хорошо, но не со всех серверов можно получить данные для $Current_song
Вот к примеру отсюда можно: хттп://radio.qip.ru:8000/status.xsl?mount=/Progosphera
А вот уже отсюда - нет: хттп://online.radiorecord.ru:8101/status.xsl?mount=/rr_128
Видать во втором варианте есть некая специфика, так как : Version - Icecast 2.3.3-kh5
Помогите пожалуйста советом, кто в этом разбирается.
И не судите строго, я вот только начал во всем этом разбираться...
Отредактировано Dr.And (03-08-2013 14:40:48)