Тема: Не приятная проблема со скриптом
Сделал человеку блог, радио сервер, сделал разметку, в общем все сделал на любительском уровне.
Но возникла проблема с скриптом вывода информации об статусе радио сервера.
Когда сервер работает все нормально выводит изображение Online, когда сервер работает но Winamp отключен, иконка Offline.
Но когда сервер вообще не работает (компьютер выключен) то весь блок вывода информации расползается и в общем жесть.
Вот как нормально выглядит :
А когда сервер выключен вот такая жесть :
Помогите пожалуйста.
Вот скрипт на статус песни :
<?PHP
$ip = "mikul.dyndns-free.com";
$port = "8000";
$fp = @fsockopen($ip,$port,$errno,$errstr,1);
if (!$fp)
{
$listeners = "0";
$error = "1";
}
else
{
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");
while (!feof($fp))
{
$info = fgets($fp);
}
$info = str_replace('<HTML><meta http-equiv="Pragma" content="no-cache"></head><body>', "", $info);
$info = str_replace('</body></html>', "", $info);
$stats = explode(',', $info);
if (empty($stats[1]) )
{
$listeners = "0";
$error = "1";
}
else
{
if ($stats[1] == "1")
{
$listeners = $stats[0];
$bitrate = $stats[5];
$song = $stats[6];
$song = iconv('Windows-1251', 'UTF-8', $song);
}
else
{
$listeners = "0";
$error = "1";
}
}
}
echo $song;
?>
А вот скрипт на вывод онлаин-оффлаин :
<?php
// Shoutcast Server Stats
// Parses shoutcasts xml to make an effective stats thing for any website
// ©2004-2005 Daniel Brown http://www.gmtt.co.uk
// Please refer to the readme file for use.
// Add-On MAXLISTNERS insead of the / 10 MAXLISTENERS which was set, and the BITRATE add-on.
// Online and Offline graphics, and add-on code.
// Better HTML Script.
// Do Not Try To Edit This Only Unless You Know What You're Doing!!!!!!!
include('config_radio.php');
$scfp = fsockopen("$scip", $scport, &$errno, &$errstr, 30);
if(!$scfp) {
$scsuccs=1;
echo''.$scdef.' is Offline';
}
if($scsuccs!=1){
fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
while(!feof($scfp)) {
$page .= fgets($scfp, 1000);
}
######################################################################################################################
/////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//define xml elements
$loop = array("STREAMSTATUS", "BITRATE", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "BITRATE");
$y=0;
while($loop[$y]!=''){
$pageed = ereg_replace(".*<$loop[$y]>", "", $page);
$scphp = strtolower($loop[$y]);
$$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
$$scphp = urldecode($$scphp);
// uncomment the next line to see all variables
//echo'$'.$scphp.' = '.$$scphp.'<br>';
$y++;
}
//end intro xml elements
######################################################################################################################
######################################################################################################################
/////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//get song info and history
$pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
$pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
$songatime = explode("<SONG>", $pageed);
$r=1;
while($songatime[$r]!=""){
$t=$r-1;
$playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
$playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
$song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
$song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
$song[$t] = urldecode($song[$t]);
$dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
$dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
$r++;
}
//end song info
fclose($scfp);
}
//display stats
if($streamstatus == "1"){
//you may edit the html below, make sure to keep variable intact
echo'
<img src="./wp-content/themes/mikul/online.jpg"><br>';
}
if($streamstatus == "0")
{
//you may edit the html below, make sure to keep variable intact
echo'
<img src="./wp-content/themes/mikul/offline.jpg">';
}
?>
Благодарю за внимание.
ps
А сложно реализовать динамическое обновление текущей песни ?
Отредактировано IntelXeon (02-11-2010 00:28:24)