Längere Zeit habe ich für ein Radioprojekt programmiert, diese wollten das sich die Trackanzeige auf ihrer Startseite automatisch aktuallisiert, dem habe ich mich natürlich angenommen und nen Trackupdater per Ajax programmiert den ich euch natürlich nicht vorenthalten möchte ( GNU/GPL 4 an die Macht).
Performance-technisch ist Verbesserung möglich ( z.b. durch cronjob und Titel in DB) allerdings war dies nicht Kundenwunsch um zum Zeigen reicht es ja =)
Zunächst brauchen wir das PHP-Script ( radiostats.php) das den Titel ausließt ( wäre theoretisch auch per AJAX möglich,habe es aber trotzdem in AJAX realisiert da einige Webradios nicht gern den Ort ihres Shoutcastservers bekannt geben, werde aber evtl eine JS Lösung nach reichen)
<?php
// Auslesescript für ShoutcastXML radiostats
$server = "hardi.rockt.es";
$port = 8000;
$fp = @fsockopen($server, $port, $errno, $errstr, 30);
if ($fp) {
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp))
$page .= fgets($fp, 1000);
fclose($fp);
$page = ereg_replace(".*", "", $page);
$page = ereg_replace(".*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners = $numbers[0];
$connected = $numbers[1];
if($connected == 1) {
$radio_status = 1;
$wordconnected = "yes";
}
else
$wordconnected = "no";
$shoutcast_peaklisteners = $numbers[2];
$shoutcast_maxlisteners = $numbers[3];
$shoutcast_reportedlisteners = $numbers[4];
$shoutcast_bitrate = $numbers[5];
$shoutcast_cursong = $numbers[6];
$shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners;
$shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners;
}
// Hier habt ihr freie Auswahl, ich würde 2 PHP Scripte empfehlen einmal mit Listener einmal mit Track
#echo 'Anzahl der hoerer: ' . $shoutcast_currentlisteners ;
#echo ' Bitrate: ' . $shoutcast_bitrate .'kb/s ';
#echo ' Zuhoerer Peak: ' . $shoutcast_peaklisteners;
#echo ' Maximale Zuhoerer: ' . $shoutcast_maxlisteners ;
echo ' Aktueller Song: ' . $shoutcast_cursong;
## output off ##
## shoutcasthack by bikky off ##
Nun haben wir unsere radiostats.php mit folgender Ausgabe:
Aktueller song: Beispiel- beispiel
Wie ihr nun die Ausgabe dynamisch in eure Website einbaut seht ihr im 2en Teil morgen!