现在我正在运行一个无线电服务器,我为它设置了一个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; font-weight:400; } b {font-family:'Merriweather Sans',sans-serif; font-weight: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>
任何人都可以解释我如何解决这个问题吗?
答案 0 :(得分:0)
问题必须在$ artist = explode(“ - ”,$ status [5]),如果艺术家姓名或歌曲名称包含' - ',它也会爆炸。
如果您可以更改源xsl,请将艺术家和歌曲放在不同的节点<artist>An-Artist</artist> <song>A-Song</song>
中,使用php xml parse分隔时不会出现问题。
否则,您可能需要将艺术家和歌曲名称放在一起
$status = explode(",", $stats[5]);
$artist = substr($status[5], 3); //remove '-'
echo "<b>Artist-Song:</b> " . $artist;