Tak wyglądają da się ich przerobić żeby działały na icecast
/* * Autor: Rafał Robakowski * Kontakt: rafal.robakowski (na) gmail.com */ class SHOUTcast { /* * Łączenie z serwerem shoutcast * i pobieranie zawartosci pliku xml */ function connect($host, $port, $pass) { global $xml; $fp = @fsockopen ($host, $port, $errno, $errstr, 5); if (!$fp) { return false; } else { fputs($fp, "GET /admin.cgi?pass={$pass}&mode=viewxml HTTP/1.1rn"); fputs($fp, "User-Agent: XML Getter (Mozilla Compatible)rnrn"); while (!feof($fp)) { $xml .= fgets($fp, 1024); } fclose($fp); return $xml; } } /* * Zwracanie danej pozycji, oto ich lista: * CURRENTLISTENERS - ilość aktualnych słuchaczy * PEAKLISTENERS - dotychczasowy rekord liczby słuchaczy * MAXLISTENERS - maksymalna ilość słuchaczy * SERVERGENRE - rodzaj serwera * SERVERURL - adres URL strony * SERVERTITLE - nazwa serwera * SONGTITLE - nazwa utworu aktualnie odtwarzanego * IRC - identyfikator IRC * AIM - identyfikator AIM * ICQ - identyfikator ICQ * STREAMSTATUS - status strumienia * BITRATE - jakość nadawania */ function show($item) { global $xml; $show = $xml; list(,$show) = explode('<' . strtoupper($item) . '>', $show); list($show,) = explode('</' . strtoupper($item) . '>', $show); return $show; } /* * Zwracanie rekordu radia */ function show_record($filename) { $file = $filename; include_once($file); $current = $this -> show('CURRENTLISTENERS'); if ( $current <= $peak_file ) { return $peak_file; } else { if (is_writable($file)) { $fp = fopen($file, 'a'); $new = '<?php $peak_file = '.$current.'; ?>'; @fwrite($fp, $new); fclose($fp); return $current; } else { return 'Wystąpił bład, sprawdź chmody pliku rekord.txt'; } } } function free_result() { global $xml; $xml = ''; } } //* Przykład wykorzystania w osobnym pliku $statystyki = new SHOUTcast(); // Jeśli skrypt nie uzyska polaczenia z serwerem wyswietl informacje // Podajemy kolejno: IP serwera SHOUTcast, port serwera SHOUTcast, haslo do serwera SHOUTcast if( !$statystyki -> connect('', '', '')) echo 'Serwer jest wyłączony'; // Jesli skrypt uzyska polaczenie z serwerem else { // Jeśli aktualnie nikt nie nadaje wyswietl informacje if( $statystyki -> show('STREAMSTATUS') == 0 ) echo 'Aktualnie nikt nie nadaje'; // Jeśli ktos nadaje na serverze wyswietl statystyki else { echo '<table border="0" cellspacing="0" cellpadding="0">'; echo '<tr><td>Audycja: </td><td>' . $statystyki -> show('SERVERTITLE') . '</td></tr>'; echo '<tr><td>Prowadzi: </td><td>' . $statystyki -> show('SERVERGENRE') . '</td></tr>'; echo '<tr><td>Godziny: </td><td>' . $statystyki -> show('AIM') . '</td></tr>'; echo '<tr><td>Słucha: </td><td>' . $statystyki -> show('CURRENTLISTENERS') . '</td></tr>'; // Funkcja show_record(); wyswietla rekord zapisany z pliku, w nawiasach nalezy podac sciezke do pliku gdzie bedzie przetrzymywany rekord ( plik musi posiadac uprawnienia do zapisu ( chmody ), dzieki temu po zrestartowaniu serwera shoutcast rekord zostanie bez zmiana taki jaki byl przed restartem ! echo '<tr><td>Rekord: </td><td>' . $statystyki -> show_record('rekord/rekord.php') . '</td></tr>'; echo '</table>'; } } $statystyki -> free_result();
Proszę was o pomoc bo nie mogę znaleźć na icecasta statystyk.