Icecast无线电状态不起作用

时间:2014-10-21 20:50:17

标签: php icecast

所以我在这个网站上忙着,它需要收音机。他们正在使用icecast服务器,因此我从互联网上获取了一个Icecast状态:

    <?php
$icecast_url='http://178.32.13.195:8002';

$output = file_get_contents($icecast_url);

$search='#<div class="newscontent">.*?Point /(.*?)<.*?href="(.*?)">M3U<.*?Listeners.*?class="streamdata">(.*?)<.*?Song:.*?class="streamdata">(.*?)<.*?</div>#si';
preg_match_all($search, $output, $matches);

$j=count($matches[0]);
for ($i=0;$i<$j; $i++) {

    $point_name=$matches[1][$i];
    $pount_m3u=$icecast_url.$matches[2][$i];
    $point_listners_count=$matches[3][$i];
    $point_current_song=$matches[4][$i];
//
    echo 'mount point: <b>'.$point_name.'</b>
';
    echo 'm3u: <a href="'.$pount_m3u.'">'.$pount_m3u.'</a>
';
    echo 'listners_count: <b>'.$point_listners_count.'</b>
';
    echo 'point_current_song: <b>'. $point_current_song.'</b>


';
}
?>

但它不起作用。它只显示一个空白页面。你们中的任何一个人都知道错误吗?

由于

1 个答案:

答案 0 :(得分:2)

他们正在使用Icecast 2.4.0,它有一个重新设计的Admin界面,这会破坏你的解析代码。 请不要尝试解析html,每当他们更新Icecast和HTML更改时它都会中断。 相反,您可以尝试新引入的status-json.xsl,即对于此服务器,它位于此处:http://178.32.13.195:8002/status-json.xsl

请注意,遗憾的是由于json xslt中的错误,这是无效的JSON。此问题已在Icecast 2.4.1中修复,因此,如果您可以访问服务器,则可以尽快更新到Icecast 2.4.1(可能会在几周内发布)。如果您无法访问服务器,那么您无法做到,但解析HTML是最糟糕的方法。