现在我正在运行一个广播服务器,并为它建立了一个WordPress博客。
我通过将小部件包含在每10秒自动刷新一次的iframe中来自动刷新小部件。
然而,我有一个编程问题。每当歌曲名称中有"-"($artist[2])时,它会自动将其放入下一个名称($artist[3])
这是我的php文件的代码:http://fonts.googleapis.com/css?family=Merriweather+Sans:400,700' rel='stylesheet' type='text/css'>p {font-family: 'Merriweather Sans', Sans -serif;粗细:400;}b {font-family: 'Merriweather Sans', Sans -serif;粗细:700;}
<?php header("Refresh: 10")>
//Display IceCast Server Stats
$server = "direct.x86cam.com"; //IP (x.x.x.x or domain name)
$iceport = "8000"; //Port
$iceurl = "stream.mp3"; //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>Stream Status:</b> $ice_status";
$stats = file("http://" . $server . ":" . $iceport . "/status2.xsl");
$status = explode(",", $stats[5]);
$artist = explode("-", $status[5]);
echo "<b>Artist:</b> " . $artist[1];
echo "<b>Song:</b> " . $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>Stream Status:</b> $ice_status";
}
?>
<hr />
</center>
谁能解释一下我怎么能解决这个问题?
问题一定在于$artist = explosion ("-", $status[5]),如果艺人名或歌名中包含'-',它也会被爆炸。
如果您可以更改源xsl,请将艺术家和歌曲放在不同的节点,<artist>An-Artist</artist> <song>A-Song</song>
,使用php xml解析不会出现分离问题。
否则,您可能必须将艺人和歌曲名称放在一起
$status = explode(",", $stats[5]);
$artist = substr($status[5], 3); //remove '-'
echo "<b>Artist-Song:</b> " . $artist;