[Icecast] Retrieving Playing Stats

Daniel Ballenger lpmusix at gmail.com
Tue Mar 29 01:21:46 UTC 2005


You might not have opening files over http enabled(/allowed) in your
php config.  I'd check that out first, that's probably what's wrong
:).
-Daniel

On Mon, 28 Mar 2005 19:59:59 -0500, convinceme at atrocions.com
<convinceme at atrocions.com> wrote:
> I got the following script from this mailing list but when i try using it doesnt really seem to
> work and gives me the following error.
> 
> Warning: fopen(http://...@64.157.204.179:9095/admin/stats): failed to open stream: Bad file
> descriptor in E:\Public ftp\epakimusic\test.php on line 9
> Error reading Icecast data from 64.157.204.179:9095.
> 
> So could someone please help me out with this.. or if someone has a better script that would be
> just great...
> 
> <?php
> 
> $server = "64.157.204.179:9095";
> $user = "login";
> $passw = "pass";
> $mountpoint = "/mountname";
> 
> $fp = fopen("http://$user:$passw@$server/admin/stats","r")
>          or die("Error reading Icecast data from $server.");
> 
> while(!feof($fp))
> {
>      $data .= fread($fp, 8192);
> }
> 
> fclose($fp);
> 
> // Now parse the XML output for our mountpoint
> $xml_parser = xml_parser_create();
> xml_parse_into_struct($xml_parser, $data, $vals, $index);
> xml_parser_free($xml_parser);
> 
> $params = array();
> $level = array();
> foreach ($vals as $xml_elem) {
>      if ($xml_elem['type'] == 'open') {
>         if (array_key_exists('attributes',$xml_elem)) {
>             list($level[$xml_elem['level']],$extra) =
> array_values($xml_elem['att
> ributes']);
>          } else {
>              $level[$xml_elem['level']] = $xml_elem['tag'];
>          }
>      }
>      if ($xml_elem['type'] == 'complete') {
>          $start_level = 1;
>          $php_stmt = '$params';
>          while($start_level < $xml_elem['level']) {
>              $php_stmt .= '[$level['.$start_level.']]';
>              $start_level++;
>          }
>          $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
>          eval($php_stmt);
>      }
> }
> 
> $listeners = $params['ICESTATS'][$mountpoint]['LISTENERS'];
> $currenttrack = $params['ICESTATS'][$mountpoint]['TITLE'];
> 
> echo "$listeners listeners are currently connected.";
> echo "<br />";
> echo "Currently playing: $currenttrack";
> 
> ?>
> 
> 
> _______________________________________________
> Icecast mailing list
> Icecast at xiph.org
> http://lists.xiph.org/mailman/listinfo/icecast
> 
> 
>



More information about the Icecast mailing list