W przeciwienstwie do wielu juz innych gotowych ta klasa zapisuje rekord do pliku dzieki czemu po restarcie serwera rekord zostaje taki sam jaki byl przed restartem serwera nie zeruje sie.
<?php /* * Autor: Rafał Robakowski * Kontakt: rafal.robakowski@gmail.com */ class SHOUTcast { /* * Łączenie z serwerem shoutcast * i pobieranie zawartosci pliku xml */ function connect($host, $port, $pass) { if (!$fp) { return false; } else { } 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) { $show = $xml; 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 { $new = '<?php $peak_file = '.$current.'; ?>'; return $current; } else { return 'Wystąpił bład, sprawdź chmody pliku rekord.txt'; } } } function free_result() { $xml = ''; } } /* * Przykład wykorzystania w osobnym pliku // Includujemy plik z klasa napisana powyzej include_once('shoutcast.php'); $statystyki = new SHOUTcast(); // Jeśli skrypt nie uzyska polaczenia z serwerem wyswietl informacje // Podajemy kolejno: IP serwera SHOUTcast, port serwera SHOUTcast, haslo do serwer
a SHOUTcast if( !$statystyki -> connect('127.0.0.1', 'port', 'haslo')) 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 pl
iku gdzie bedzie przetrzymywany rekord ( plik musi posiadac uprawnienia do zapisu ( chmody ), dzieki temu po zrestartowaniu serwera shoutcast rekord zostanie bez zmian
a taki jaki byl przed restartem ! echo '<tr><td>Rekord: </td><td>' . $statystyki -> show_record('rekord/rekord.php') . '</td></tr>'; echo '</table>'; } } $statystyki -> free_result(); */ ?>
Oczywiscie przy wywolaniu modulu show_record trzeba podac sciezka do pliku .php gdzie bedzie zapisywany rekord natomiast plik nalezy utworzyc i nadawac mu odpowiednie chmody ( prawa zapisu ). Plik php do ktorego wskazemu sciezke musi miec nastepujaca zawartosc:
<?php $peak_file = 0; ?>
Cała operacja jest oczywiscie zbedna gdy niechcemy wyswietlac rekordu radia na stronie.