Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]statystyki radia
pawel06281990
post 16.07.2019, 12:57:27
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 10.01.2014

Ostrzeżenie: (0%)
-----


Witam posiadam statystyki radia ale one nie działają bo są aby do shoutcast mój serwer to Icecast.

Tak wyglądają da się ich przerobić żeby działały na icecast

  1. /*
  2. * Autor: Rafał Robakowski
  3. * Kontakt: rafal.robakowski (na) gmail.com
  4. */
  5. class SHOUTcast {
  6.  
  7. /*
  8. * Łączenie z serwerem shoutcast
  9. * i pobieranie zawartosci pliku xml
  10. */
  11. function connect($host, $port, $pass) {
  12. global $xml;
  13.  
  14. $fp = @fsockopen ($host, $port, $errno, $errstr, 5);
  15.  
  16. if (!$fp) {
  17. return false;
  18. } else {
  19. fputs($fp, "GET /admin.cgi?pass={$pass}&mode=viewxml HTTP/1.1rn");
  20. fputs($fp, "User-Agent: XML Getter (Mozilla Compatible)rnrn");
  21.  
  22. while (!feof($fp)) {
  23. $xml .= fgets($fp, 1024);
  24. }
  25. fclose($fp);
  26. return $xml;
  27. }
  28. }
  29.  
  30. /*
  31. * Zwracanie danej pozycji, oto ich lista:
  32. * CURRENTLISTENERS - ilość aktualnych słuchaczy
  33. * PEAKLISTENERS - dotychczasowy rekord liczby słuchaczy
  34. * MAXLISTENERS - maksymalna ilość słuchaczy
  35. * SERVERGENRE - rodzaj serwera
  36. * SERVERURL - adres URL strony
  37. * SERVERTITLE - nazwa serwera
  38. * SONGTITLE - nazwa utworu aktualnie odtwarzanego
  39. * IRC - identyfikator IRC
  40. * AIM - identyfikator AIM
  41. * ICQ - identyfikator ICQ
  42. * STREAMSTATUS - status strumienia
  43. * BITRATE - jakość nadawania
  44. */
  45. function show($item) {
  46. global $xml;
  47.  
  48. $show = $xml;
  49.  
  50. list(,$show) = explode('<' . strtoupper($item) . '>', $show);
  51. list($show,) = explode('</' . strtoupper($item) . '>', $show);
  52. return $show;
  53. }
  54.  
  55. /*
  56. * Zwracanie rekordu radia
  57. */
  58.  
  59. function show_record($filename) {
  60. $file = $filename;
  61.  
  62. include_once($file);
  63. $current = $this -> show('CURRENTLISTENERS');
  64.  
  65. if ( $current <= $peak_file ) {
  66. return $peak_file;
  67. } else {
  68. if (is_writable($file)) {
  69. $fp = fopen($file, 'a');
  70. $new = '<?php $peak_file = '.$current.'; ?>';
  71. @fwrite($fp, $new);
  72. fclose($fp);
  73.  
  74. return $current;
  75. } else {
  76. return 'Wystąpił bład, sprawdź chmody pliku rekord.txt';
  77. }
  78. }
  79.  
  80. }
  81.  
  82. function free_result() {
  83. global $xml;
  84. $xml = '';
  85. }
  86.  
  87. }
  88.  
  89.  
  90. //* Przykład wykorzystania w osobnym pliku
  91.  
  92.  
  93.  
  94.  
  95. $statystyki = new SHOUTcast();
  96.  
  97. // Jeśli skrypt nie uzyska polaczenia z serwerem wyswietl informacje
  98. // Podajemy kolejno: IP serwera SHOUTcast, port serwera SHOUTcast, haslo do serwera SHOUTcast
  99. if( !$statystyki -> connect('', '', ''))
  100. echo 'Serwer jest wyłączony';
  101.  
  102. // Jesli skrypt uzyska polaczenie z serwerem
  103. else {
  104.  
  105. // Jeśli aktualnie nikt nie nadaje wyswietl informacje
  106. if( $statystyki -> show('STREAMSTATUS') == 0 )
  107. echo 'Aktualnie nikt nie nadaje';
  108.  
  109. // Jeśli ktos nadaje na serverze wyswietl statystyki
  110. else {
  111. echo '<table border="0" cellspacing="0" cellpadding="0">';
  112. echo '<tr><td>Audycja: </td><td>' . $statystyki -> show('SERVERTITLE') . '</td></tr>';
  113. echo '<tr><td>Prowadzi: </td><td>' . $statystyki -> show('SERVERGENRE') . '</td></tr>';
  114. echo '<tr><td>Godziny: </td><td>' . $statystyki -> show('AIM') . '</td></tr>';
  115. echo '<tr><td>Słucha: </td><td>' . $statystyki -> show('CURRENTLISTENERS') . '</td></tr>';
  116.  
  117. // 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 !
  118.  
  119. echo '<tr><td>Rekord: </td><td>' . $statystyki -> show_record('rekord/rekord.php') . '</td></tr>';
  120. echo '</table>';
  121. }
  122. }
  123. $statystyki -> free_result();


Proszę was o pomoc bo nie mogę znaleźć na icecasta statystyk.
Go to the top of the page
+Quote Post
nospor
post 16.07.2019, 14:30:05
Post #2





Grupa: Moderatorzy
Postów: 36 442
Pomógł: 6290
Dołączył: 27.12.2004




O ile nie zmienili API to masz kod tutaj
https://github.com/okwinza/icecast2-php-api


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.04.2024 - 06:15