Webmaster общности: Predpriemach.com | SearchEngines.bg

    ShoutCast – интернет радио статистика

    Автор: miro91

    В този урок ще ви покажа как да вземета статистика от вашето радио ShoutCast и да я покажете в сайта си.
    Трябва ни само една страница в която да настроите нещата които са в черено.

    <?php
    
    error_reporting(E_ERROR);
    
    // информация за радиото //
    
    $yourIP = '[color=red]тука адреса на радиото[/color]';
    $yourPORT = '[color=red]порта на сървъра[/color]';
    
    
    $tablew = '600'; // дължина на таблицата
    
    $thickness = '2';
    $padding = '4'; // Cell padding
    $font = 'Verdana'; // Font
    $fontsize = '2'; // Font size
    
    $refresh = '300'; //През колко секунди да се обновява страницата със статистиката
    // връща JavaScripta или хтмл а
    $jsOutput=FALSE; // TRUE=js | FALSE=HTML
    
    //Взима адреса на радиото от посочения url
    $host = $_REQUEST[host];
    if (!$host) $host = $yourIP;
    $port = $_REQUEST[port];
    if (!$port) $port = $yourPORT;
    
    $lf = chr(10); // 0x0A [\n]
    
    //тука се определя колко песни да показва от 10 до 20 най-много
    $t_max = $_REQUEST[n];
    if (!t_max || $t_max<1 || $t_max>19) $t_max=10;
    //19 е максимално защото показва 19+сегашната песен
    
    $connect_timeout=5;
    $success=0;
    
    $fp1 = fsockopen($host, $port, &$errno, &$errstr, $connect_timeout); //open connection
    if(!$fp1) { //if this fails, I'm done....
    fclose($fp1);
    $success++;
    } else {
    $request="GET /index.html HTTP/1.1\r\nHost:" . $host . ":" . $port . "\r\nUser-Agent: SHOUTcast DNAS Status [index] * (Mozilla/PHP)\r\nConnection: close\r\n\r\n"; //get index.html
    fputs($fp1,$request,strlen($request));
    $page='';
    while(!feof($fp1)) {
    $page .= fread($fp1, 16384);
    }
    fclose($fp1);
    
    // (hint-hint)
    
    $song00 = ereg_replace("</b></td>.*", "", ereg_replace(".*Current Song: </font></td><td><font class=default><b>", "", $page)); // easy, right <img src="images/smilies/smile.gif" border="0" alt="">
    
    
    $fp = fsockopen($host, $port, &$errno, &$errstr, $connect_timeout);
    if(!$fp) { //if connection could not be made
    fclose($fp);
    $success++;
    
    } else {
    $request="GET /played.html HTTP/1.1\r\nHost: " . $host . ":" . $port . "\r\nUser-Agent: SHOUTcast DNAS Status [played] * (Mozilla/PHP)\r\n"."Connection: close\r\n\r\n";
    fputs($fp,$request,strlen($request));
    $page='';
    while (!feof($fp)) {
    $page .= fread($fp, 16384);
    }
    fclose($fp); //close connection
    $played_html=$page;
    
    if ($played_html) {
    $played_html= ereg_replace('<x>','|-|',ereg_replace('</tr>','',ereg_replace('</td><td>','<x>',ereg_replace('<tr><td>','',ereg_replace('</tr>','</tr>' . $lf,ereg_replace('-->','--]',ereg_replace('<!--','[!--',ereg_replace('</table><br><br>.*','',ereg_replace('.*<b>Current Song</b></td></tr>','',$played_html)))))))));
    $xxn=strlen($played_html);
    $r=2;
    $t_count=0;
    $reading=0;
    $track[0]=$song00;
    while ($r<$xxn & $t_count<=$t_max){
    $cur=substr($played_html,$r,1);
    if ($cur==$lf) $reading=0;
    if ($reading==1) $track[$t_count] .= $cur;
    if ($cur=="|" & substr($played_html,$r-1,1)=="-" & substr($played_html,$r-2,1)=="|") {
    $reading=1;
    $t_count++;
    }
    $r++;
    }
    }
    }
    }
    
    // I now have $track[0-N] containg the current plus last N tracks...
    // Output time...
    
    if ($success==0) {
    
    if ($jsOutput) { // JavaScript - used as <script src=...></script>
    header('Content-type: text/javascript');
    } else { // HTML... (iFrames anyone?)
    echo '<HTML>
    <HEAD><TITLE>Тука адреса на сайта' . $track[0] . '</title>
    <meta http-equiv="refresh" content="' . $refresh . ';URL=' . $_SERVER['PHP_SELF'] . '?host=' . $host . '&port=' . $port . '">
    </head>
    <BODY bgcolor=' . $bgcolor . '>';
    }
    
    $r=0;
    $output_string='';
    
    $output_string .= '<table width="' . $tablew . '" style="border-collapse: collapse" border="' . $thickness . '" bordercolor="' . $border . '"><tr bgcolor="' . $toprow . '"><td>
    <table width="100%" border="0" cellpadding="' . $padding . '"><tr><td>
    <font face=' . $font . ' size=' . $fontsize . '>';
    // Сега ще покажем коя песен върви в момента
    
    while ($r<=$t_max){
    if ($r==0) $output_string .= '?? ??????????N???:<br> <b>'.str_replace("'", "'",str_replace('"', '"',$track[$r])).'</b></td></tr></table></td></tr><tr><td><table width="100%" border="0" cellpadding="' . $padding . '"><tr><td><font face=' . $font . ' size=' . $fontsize . '><i>Тука нещо</i><br>';
    else $output_string .= str_replace("'", "'",str_replace('"', '"',$track[$r])) . '<br>';
    
    $r++;
    }
    // Затваряме таблицата
    $output_string .= '</td></tr></table></td></tr></font></td></tr></table>';
    
    if ($jsOutput) {
    echo "document.write('" . $output_string . "');";
    } else {
    echo $output_string . '</body></html>';
    }
    
    } else { //Ако не може да се свържи с DNAS
    if ($jsOutput) echo "document.write('Off Air');";
    else echo "<HTML><HEAD><TITLE>Off-Air</title></head>
    <BODY bgcolor=" . $bgcolor . "><font face=" . $font . " size=" . $fontsize . ">[color=red]Тука текст ако радиото е спряно.[/color]</body></html>";
    
    }
    ?>

    Автор на урока съм аз и забранявам копирането на урока в други сайтове.
    Подготвено специално за потребителите на http://web-tourist.net

    Оставете коментар