我从不同的Stackoverflow问题中获取了部分PHP代码,并且它运行良好。
<?php header>
//Display IceCast Server Stats
$server = "***********"; //IP (x.x.x.x or domain name)
$iceport = "8070"; //Port
$iceurl = "live"; //Mountpoint
$online = "<font color=green><b>ONLINE</b> </font><br />";
$offline = "<font color=red><b>OFFLINE</b></font><br />";
if($fp = @fsockopen($server, $iceport, $errno, $errstr, '1')) {
fclose($fp);
$ice_status=$online;
echo "<p><b>DJ:</b> $ice_status";
$stats = file("http://" . $server . ":" . $iceport . "/status2.xsl");
$status = explode(",", $stats[5]);
$artist = explode("-", $status[5]);
echo " " . $artist[1];
echo " - ";
echo " " . $artist[2];
echo "<br />";
// echo "<b>Listeners:</b> <b> " . $status[3] . "</b>";
echo "</p>";
//echo "<br />";
//echo "<p><a href=http://" . $server . ":" . $iceport . "/" . $iceurl . " target=new><b>Listen!</b></a></p>";
} else {
$ice_status=$offline;
echo "<p><b>DJ:</b> $ice_status";
}
?>
<hr />
</center>
我正在尝试添加当前的流名称: 回声“
DJ: $ ice_status”; 这显示DJ:ONLINE,但我希望它说DJ :( DJ名称/流名称)
我确实相信来自status2.xsl的变量,但我在这方面是一个完整的菜鸟,似乎无法弄清楚如何使用它。谁能告诉我什么是streamname变量?
我也想知道,是否有可能让“nowplaying.php”刷新,但我的整个网页没有?我已经尝试了iframe,但它看起来非常糟糕,并且有错误。
我的网站目前的样子:https://i.stack.imgur.com/luc4O.jpg
答案 0 :(得分:0)
我建议看一下TheFineManual™:
http://icecast.org/docs/icecast-2.4.1/server-stats.html#xslt
特别是关于status-json.xsl
的部分。确保您运行的是最新版本的Icecast。所有主要的Linux发行版都提供Icecast,采用最新的包装。 Xiph提供independent packaging,如果没有最新的发行包,例如,在Icecast发布后不久。
status2.xsl
是一个示例文件,而且是一个糟糕的文件。它已从较新的Icecast版本中删除。