<?php
/*  
 * http://www.hard.fm stream status 
 * Author: Sander Poelwijk <s.poelwijk@handigejongens.com>
 *
 */

echo '<h1>Current stream status</h1><br />';

// array with streams => port
$aStreams = array('192.leaseweb.hard.fm' => 8000,
		  '128.leaseweb.hard.fm' => 8000,
		  '64.leaseweb.hard.fm' => 8000);

// loop trough all streams and try to connect
foreach($aStreams as $sStream => $iPort){
  if(!$fp = @fsockopen($sStream, $iPort, &$errno, &$errstr, 3)) { 
     echo '<span style="color: red;">';
     echo 'Stream '.$sStream.' offline.<br /><br />';
     echo '</span>';
  } else {
    // get 7.html
    fputs($fp,"GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); 
    while(!feof($fp)) { 
      $sPage = fgets($fp, 1000); 
    }
    fclose($fp); 

    $sPage = ereg_replace(".*<body>", "", $sPage); 
    $sPage = ereg_replace("</body>.*", ",", $sPage); 
    $aData = explode(",",$sPage); 
    
    $aStreamInfo['stream'] = $sStream;
    $aStreamInfo['port'] = $iPort;
    $aStreamInfo['currentusers'] = $aData[0];
    $aStreamInfo['online'] = $aData[1]; // 1 for online, 0 for offline
    $aStreamInfo['maxusers'] = $aData[2];
    $aStreamInfo['userlimit'] = $aData[3];
    $aStreamInfo['uniqueusers'] = $aData[4];
    $aStreamInfo['bitrate'] = $aData[5];
    $aStreamInfo['nowplaying'] = $aData[6];
  
    echo '<span style="color: green;">';
    echo 'Stream '.$aStreamInfo['stream'].' online, '.$aStreamInfo['currentusers'].' users listening. <br />'; 
    echo 'Playing '.$aStreamInfo['nowplaying']. ' @ '.$aStreamInfo['bitrate'].'Kbps<br /><br />'; 
    echo '</span>';
  }
}
echo '<small>Last update: '.date('d-m-Y H:i:s', time()).'</small>';

?>
