PHP-Klasse Icecaststatus

Icecast status parsen und als Array zurückgeben

Einleitung

Bei einem Icecast Streaming server können mit der status.xsl diverse Metadaten abgerufen werden.
Diese Klasse parst deren Ausgabe und stellt die Daten als ein Array bereit.
Das Skript ist kostenlos (GNU GPL 3).

Installation

Download

Download:
icecaststatus.zip (7 kB)

Auspacken

Kopieren Sie die Datei icecaststatus.class.php in ihr PHP-Verzeichnis. Sie kann auch in einem beliebigen Unterordner abgelegt werden.

Verwendung

$sStatusUrl = "http://[your-icecast-server]/status.xsl"; 
$o = new IcecastStatus($sStatusUrl); 

var_dump($o->getMounts());  // listet alle Mountpoints auf 

$a = $o->getData();         // listet alle Daten aller Mountpoints auf 
$a = $o->getData("[Name]"); // listet alle Daten des angegebenen Mountpoints auf

Dokumentation

Class: IcecastStatus

Methoden verstecken

 __constructpublic __construct( $sUrl) ... all param(s) required


@param string $sUrl urls to the status.xsl
@return boolean

 _getIcecastStatusprivate _getIcecastStatus()

read icecast status.xsl and create an array with all status infos.
@return boolean

 getMountspublic getMounts()

get a flat array with all mount points
@return array

 getDatapublic getData( $sMount = false)

get all icecast data as an array.

With a a given mount you get data of all mounts; with an existing
mount you get the data of this mount only.




require_once("icecaststatus.class.php");

$o = new IcecastStatus($sStatusUrl);

var_dump($o->getData("/m/drsvirus/aacp_32"));


returns

array (size=10)

'Stream Title' => string 'SRF Virus' (length=9)

'Stream Description' => string 'Radio SRF Virus - Radio, aber anders - srfvirus.ch...' (length=111)

'Content Type' => string 'audio/aacp' (length=10)

'Mount Start' => string '08/Oct/2013:15:16:39 +0200' (length=26)

'Bitrate' => string '32 ' (length=3)

'Current Listeners' => string '0' (length=1)

'Peak Listeners' => string '1' (length=1)

'Stream Genre' => string 'Pop Music' (length=9)

'Stream URL' => string 'http://srfvirus.ch' ... (length=69)

'Current Song' => string 'Radio SRF Virus - Radio, aber anders - srfvirus.ch ...' (length=115)

@param string $sMount name of an existing mount (use getMounts() method before); optional
@return array

Properties verstecken

$_sStatusUrlprivate $_sStatusUrl = false

url to the sttaus.xsl of an icecast server
@var string
$_aStatusprivate $_aStatus = false

array with all parsed data of all streams
@var array