0

现在我正在运行一个无线电服务器,并为它建立了一个 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无衬线,无衬线;字体粗细: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>

谁能解释我如何解决这个问题?

4

1 回答 1

0

问题一定出在$artist = explode("-", $status[5]),如果艺人名或歌名中包含'-',也会被炸掉。

如果可以更改源xsl,请将艺术家和歌曲放在不同的节点中,使用php xml parse<artist>An-Artist</artist> <song>A-Song</song>分离不会有问题。

否则,您可能必须将艺术家和歌曲名称放在一起

  $status = explode(",", $stats[5]);
  $artist = substr($status[5], 3); //remove '-'
  echo "<b>Artist-Song:</b> " . $artist;
于 2013-05-31T02:33:55.980 回答