Отображение сценария Radio Stats вне сети - PullRequest
0 голосов
/ 23 декабря 2018

Я нашел этот скрипт на форуме (в сообщении 2008 года) и не могу заставить его работать.

Я попробовал это:

1 - Удаление

if($status[0] == 0)
    {
        die('<center>Our radio is currently <font color=red><b>offline</b>!    </font></center>');
}

2 - Обмен

fputs ($fp, "GET /admin.cgi?pass={$adminpass}&mode=viewxml     HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");

на

fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");

Сценарий:

$host = "111.111.1.11"; # the IP address of your server
$port = "8000"; #the port your server's on
$adminpass = "changeme"; #the ADMINISTRATOR password

$fp = fsockopen ($host, $port, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET /admin.cgi?pass={$adminpass}&mode=viewxml
HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
    while (!feof($fp)) {
        $content .= fgets ($fp,128);
    }
    fclose ($fp);
}

$status = explode('<STREAMSTATUS>',$content);
$status = explode('</STREAMSTATUS>',$status[1]);
if($status[0] == 0)
        {
        die('<center>Our radio is currently <font color=red><b>offline</b>!        </font></center>');
    }

$listeners = explode('<CURRENTLISTENERS>',$content);
$listeners = explode('</CURRENTLISTENERS>',$listeners[1]);

$maxlisteners = explode('<MAXLISTENERS>',$content);
$maxlisteners = explode('</MAXLISTENERS>',$maxlisteners[1]);

$servertitle = explode('<SERVERTITLE>',$content);
$servertitle = explode('</SERVERTITLE>',$servertitle[1]);

$song = explode('<TITLE>',$content);
for($i=1; $i<=10; $i++)
    {
        $song[$i] = explode('</TITLE>',$song[$i]);
        $song[$i] = $song[$i][0];
    }

echo '<center>';
echo "<b>Listeners:</b> {$listeners[0]} / {$maxlisteners[0]}<br><br>";
echo "<b>Current DJ:</b> {$servertitle[0]}<br><br>";
echo "<b>Current Song:</b> {$song[1]}<br><br>";
echo "<b>Recent Songs:</b><br>";
foreach($song as $id => $value)
    {
        if($id != 0 && $id != 1)
            {
                $display = $id - 1;
                echo "<b>{$display}</b>. {$value}<br>";
            }
    }
echo '</center>';
?>

Должен отражать количество слушателей, DJ, Текущая песня и Последние песнивместо этого он просто отображает: «Наше радио в данный момент отключено!».

Я почти уверен, что IP-адрес и порт верны, что касается «пароля администратора», который я вставил в пароль администратора радио, заданный WHMSonic..

1 Ответ

0 голосов
/ 23 декабря 2018

Вторая строка здесь перезаписывает строку перед ней:
$status = explode('<STREAMSTATUS>',$content);
$status = explode('</STREAMSTATUS>',$status[1]);

Кажется, что это происходит в нескольких местах.Не уверен, что это сработает.

...