Korzystając z tej strony zgadzasz się z polityką prywatności i regulaminem.
Akceptuj
WebInside.plWebInside.plWebInside.pl
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
Szukaj
  • Kontakt
  • Forum
WebInside.pl © 2023.
Czytasz: Statystyki z ShoutCAST w PHP
Udostępnij
Zaloguj się
Powiadomienia
Aa
WebInside.plWebInside.pl
Aa
Szukaj
  • Strona główna
  • Aktualności
  • Technologie webowe
  • Publicystyka
  • E-marketing
  • Poradniki
  • AI
  • Technologie
  • Artykuły partnerskie
  • Więcej
    • Kontakt
    • Mapa strony
Masz już konto? Zaloguj się
  • Aktualności
  • Technologie
  • WWW
  • E-marketing
  • AI
  • Poradniki
  • e(Biznes)
WebInside.pl © 2023.
WebInside.pl > Technologie webowe > Statystyki z ShoutCAST w PHP
Technologie webowe

Statystyki z ShoutCAST w PHP

WebInside.pl
Ostatnia aktualizacja: 25.07.2003
WebInside.pl
Udostępnij
Udostępnij

ShoutCAST to jedna z technologii umożliwiających prowadzenia transmisji radiowych w internecie. W artykule przedstawiam sposób odczytywania statystyk serwera ShoutCAST, który może zostać wykorzystany na stronie niejednego radia internetowego.

Większość powstających rozgłośni internetowych boryka się z problemem odczytywania statystyk serwera. Owszem, istnieją darmowe skrypty, które to umożliwiają, ale nic nie stoi na przeszkodzie, aby dowiedzieć się jak to naprawdę działa. Na początek skonstruujemy klasę, która będziemy wykorzystywać w skrypcie. Otwieramy dowolny edytor tekstu, a następnie zapisujemy nowy dokument pod nazwą ‘shoutcast.class’. Teraz przechodzimy do samego kodu:

<? class ShoutCAST { var $host, $port, $pass, $dane, $values, $indexes;

Klasę zdeklarowaliśmy pod nazwa ‘ShoutCAST’ i utworzyliśmy zmienne, które będą przechowywać dane potrzebne do działania skryptu. Kolejnym krokiem będzie stworzenie metody, która nawiąże połączenie z serwerem ShoutCAST’owym:

function connect() { $fp = fsockopen($this->host, $this->port, $errno, $errstr, 10); if (!$fp) { return false; } else { fputs($fp, „GET /admin.cgi?pass=”.$this->pass.”&mode=viewxml HTTP/1.0rn”); fputs($fp, „User-Agent: Mozillarnrn”); while (!feof($fp)) { $this->dane .= fgets($fp, 512); } fclose($fp); if (stristr($this->dane, „HTTP/1.0 200 OK”) != true) return false; $code_xml = xml_parser_create(); if (!xml_parse_into_struct($code_xml, $this->dane, $this->values, $this->indexes)) return false; xml_parser_free($code_xml); return true; } }

Jak widać w powyższym kodzie, na początku zainicjowaliśmy połączenie z serwerem. Jeśli nie udało się go nawiązać funkcja zwraca wartość ‘false’, w przeciwnym wypadku następuje pobranie danych w formacie XML i przypisanie ich do zmiennej ‘$dane’. Jeśli dane są poprawne przystępujemy do ich parsowania poprzez zastosowanie odpowiednich funkcji PHP. Jeśli operacja ta się nie powidła metoda zwraca wartość ‘false’. Gdy wszystkie czynności przebiegły poprawnie zostanie zwrócona wartość ‘true’. Oczywiście można stworzyć system zarządzania błędami podczas próby połączenia z serwerem, lecz to już pozostawiam w Waszych rękach. Następnym etapem będzie skonstruowanie metody, która posłuży nam do odczytywania poszczególnych wartości statystyk:

function showValue($which) { return($this->values[$this->indexes[$which][0]][„value”]); }

Metoda ta może przyjąć następujące argumenty, które zwrócą odpowiednią wartość:

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

Mogą występować także argumenty tj. REPORTEDLISTENERS, AVERAGETIME, WEBHITS, STREAMHITS, lecz nie będą nam one potrzebne. Na koniec zamykamy naszą klasę:

} ?>

Teraz kiedy już mamy gotową klasę ShoutCAST możemy skonstruować kod, który wyświetli pobrane dane w taki sposób, aby pasowały one na naszej stronie. Otwieramy dowolny edytor tekstu i zapisujemy dokument pod jakąś nazwą, a następnie przystępujemy do skonstruowania kodu:

<? include(‘shotcast.class’);

Na początku musieliśmy dodać do skryptu plik, zawierający napisaną wcześniej klasę. Później musimy zadeklarować ową klasę i podać odpowiednie dane, które umożliwią nawiązanie połączenia z serwerem:

$shoutcast = new ShoutCAST(); $shoutcast->host = „192.189.45.3”; // adres IP serwera $shoutcast->port = 8000; // port serwera $shoutcast->passwd = „haslo”; // hasło do serwera

Podane dane są tylko przykładowe i nie odwołują się do żadnego serwera, a jeżeli tak jest to jest to kwestia tylko przypadku. W następnej kolejności sprawdzamy czy nawiązanie połączenia z serwerem jest możliwe i jeśli tak, to przystępujemy zidentyfikowania statusu serwera. Jeśli jest on włączony to pobieramy i wyświetlamy interesujące nas dane.

if ($shoutcast->connect()) { if ($shoutcast->showValue(‘STREAMSTATUS’)) { print “Nazwa serwera:”.$shoutcast->showValue(‘SERVERTITLE’)).”<br>”; print “Ilość słuchaczy:”.$shoutcast->showValue(‘CURRENTLISTENERS’)).”<br>”; print “Limit słuchaczy:”.$shoutcast->showValue(‘MAXLISTENERS’)).”<br>”; print “Rekord słuchaczy:”.$shoutcast->showValue(‘PEAKLISTENERS’)).”<br>”; print “Rodzaj serwera:”.$shoutcast->showValue(‘SERVERGENRE’)).”<br>”; print “URL serwera:”.$shoutcast->showValue(‘SERVERURL’)).”<br>”; print “Nazwa piosenki:”.$shoutcast->showValue(‘SONGTITLE’)).”<br>”; print “Jakość nadawania:”.$shoutcast->showValue(‘BITRATE’)).”<br>”; print “IRC:”.$shoutcast->showValue(‘IRC’)).”<br>”; print “AIM:”.$shoutcast->showValue(‘AIM’)).”<br>”; print “ICQ:”.$shoutcast->showValue(‘ICQ’)).”<br>”;

Gdy status serwera zwraca wartość ‘false’, oznacza to, że w danej chwili nie ma nadawanych żadnych informacji. Możemy to zasygnalizować odpowiednim komunikatem:

} else { print „Serwer jest włączony, ale aktualnie nie ma żadnej audycji.”; }

Podobnie, gdy nie możliwe jest połączenie z serwerem możemy zwrócić stosowny komunikat:

} else { print “Serwer jest wyłączony.”; } ?>

Oczywiście skrypt musieliśmy zakończyć odpowiednim tagiem. W ten sposób zakończyliśmy prace. Teraz gotowy skrypt można wykorzystać na dowolnej stronie internetowej. Warto zastanowić się nad skonstruowaniem wspomnianej wcześniej obsługi błędów połączenia z serwerem, gdyż w ten sposób możemy kontrolować przyczyny powstawania problemów, a zatem je eliminować.

Może Cię zainteresować

Jak wybrać agencję do tworzenia strony internetowej w Warszawie?

Lovable – recenzja po 3 miesiącach. Cennik, opinie, kredyty, limity

Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać

AI kontra klasyczne kreatory stron: kto tu naprawdę wygrywa?

Jak wybrać i zarejestrować domenę? Praktyczny przewodnik dla firm i osób prywatnych

WebInside.pl 2003-07-25 2003-07-25
Udostępnij ten artykuł
Facebook Twitter Kopiuj link Wydrukuj
Udostępnij
Poprzedni artykuł Jak ukryć menu animacji Flash?
Następny artykuł Własny język opisu danych
Zostaw komentarz lub opinię

Dodaj komentarz Anuluj pisanie odpowiedzi

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Najnowsze artykuły

screen showing bitcoin trading chart
Dobre giełdy kryptowalut – po czym je poznać, zanim wpłacisz pierwsze 100 zł
Artykuły partnerskie
Jak wybrać platformę e-commerce dla rozwijającego się sklepu?
Artykuły partnerskie
man facing three computer monitors while sitting
JetBrains w 2026 roku: jaką licencję wybrać i jak zaoszczędzić na zakupie?
e(Biznes)
Printerio – profesjonalna poligrafia dla firm, które chcą wyglądać dobrze na papierze
Artykuły partnerskie
Reklama jest dobra, a strona, na którą prowadzi, sprzedaje słabo. Pięć kontroli, zanim podniesiesz budżet
Artykuły partnerskie
a blue button with a white arrow on it
5 Best VPS Hosts to Run Telegram Bots 24/7 Without Interruptions
Artykuły partnerskie
Ryczałt 12% czy liniowy z IP Box? Programista na B2B wybiera formę opodatkowania na 2027 rok
Aktualności
Handlowiec na etat czy zewnętrzny zespół? Porównanie kosztów w 2026 roku
Artykuły partnerskie
Aplikacja Bybit – opinie o aplikacji mobilnej Bybit.eu na Androida i iOS
Artykuły partnerskie
Jak zwiększyć rozpoznawalność marki w całym mieście dzięki reklamie na tramwajach
E-marketing
banner
Chcesz umieścić swoją reklamę w portalu WebInside.pl?
Skontaktuj się z nami, a zaproponujemy interesujące formy reklamy.
Skontaktuj się

Inne polecane artykuły

Technologie webowe

Jak wybrać agencję do tworzenia strony internetowej w Warszawie?

3 min czytania

Lovable – recenzja po 3 miesiącach. Cennik, opinie, kredyty, limity

15 min czytania
Technologie webowe

Stanowisko web developera w 2026: co naprawdę przyspiesza pracę — i za co nie warto przepłacać

7 min czytania
a computer screen with the words the easy way to build marketplaces
Technologie webowe

AI kontra klasyczne kreatory stron: kto tu naprawdę wygrywa?

5 min czytania
Technologie webowe

Jak wybrać i zarejestrować domenę? Praktyczny przewodnik dla firm i osób prywatnych

5 min czytania
Technologie webowe

Komentarze w CSS – jak dodawać i do czego służą? Przykłady użycia

17 min czytania
Technologie webowe

Co to jest REST API i na jakich zasadach działa? Przewodnik dla początkujących

21 min czytania
Technologie webowe

Marginesy i dopełnienie w CSS – czym się różnią właściwości margin i padding?

17 min czytania
//

WebInside.pl – portal technologiczny. Aktualności ze świata technologii, webmastering, marketing internetowy, AI, poradniki.

 

Partnerzy



Wszystkie kategorie

  • AI
  • Aktualności
  • Artykuły partnerskie
  • E-marketing
  • e(Biznes)
  • Poradniki
  • Publicystyka
  • Technologie
  • Technologie webowe

Ostatnio dodane

  • Dobre giełdy kryptowalut – po czym je poznać, zanim wpłacisz pierwsze 100 zł
  • Jak wybrać platformę e-commerce dla rozwijającego się sklepu?
  • JetBrains w 2026 roku: jaką licencję wybrać i jak zaoszczędzić na zakupie?
  • Printerio – profesjonalna poligrafia dla firm, które chcą wyglądać dobrze na papierze

Kontakt

Chcesz się z nami skontaktować? Jesteś zainteresowany reklamą lub artykułem sponsorowanym?

Skorzystaj z formularza kontaktowego lub napisz do nas na kontakt@webinside.pl

WebInside.plWebInside.pl
WebInside.pl © 2023 | Mapa strony | Forum | Polityka prywatności
Witaj ponownie!

Zaloguj się do swojego konta

Zapomniałeś hasła?