【问题标题】:PHP (Icecast) - How do I display the whole song name?PHP (Icecast) - 如何显示整个歌曲名称?
【发布时间】:2013-05-26 18:27:19
【问题描述】:

现在我正在运行一个广播服务器,并为它建立了一个 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>

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

【问题讨论】:

    标签: php stream icecast


    【解决方案1】:

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

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

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

      $status = explode(",", $stats[5]);
      $artist = substr($status[5], 3); //remove '-'
      echo "<b>Artist-Song:</b> " . $artist;
    

    【讨论】:

    • 好的,我想它可能有效,如果无效我会再次回复。谢谢!
    • @user2403927 另外,如果您可以将返回数据格式化为标准 xml 或 json 会更好:)
    • 我还是决定添加评论。有用!谢谢!一段时间以来一直在尝试解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多