Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

Jacob

[PHP] Statystyki tekstowe shoutcast

Promowane odpowiedzi

Statystyki shoutcast:

Tworzymy plik o nazwie stats.php
Do pliku wklejamy kod, który jest objaśniony poniżej:

<html> 
 <head> 
 <meta http-equiv="Content-Language" content="pl"> 

    
   <!-- coding.unl.pl  --> 
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> 
   <meta http-equiv="Refresh" content="30" /> 
  
 </head> 


<? 
  
  $sc[ip]       =   "s1.slotex.pl";  /*Tutaj należy wpisać IP radia*/ 
  $sc[port]     =   7076;            /*Tutaj wpisujemy port, w moim przypadku to 7076*/ 
 /**************** Tutaj tabele, które będą generować pola, tzn $sc[table1] bedzie odpowiadać za to, jaki Dj gra itd...****************/ 
  $sc[table1]   =   "<b>[dj][status]</b>"; 
  $sc[table2]   =   "<b>[audycja][status]</b>"; 
  $sc[table3]   =   "<b>[nuta][status]</b>"; 
  $sc[table4]   =   "<b>[ile]</b>"; 

if($fp = fsockopen($sc[ip] , $sc[port])) 
{ 
fputs($fp,"GET /index.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n"); 
fgets($fp);fgets($fp);fgets($fp); 
      while(!feof($fp)) $in.=strip_tags(fgets($fp)); 
fclose($fp); 
# echo $in; 

//  [status] 
  $m[0]="Server is currently"; 
  $m[1]=""; 
  $mp[0]=strpos($in,$m[0]); 
  $mp[1]=@strpos($in,$m[1]); 
  $ml[0]=strlen($m[0]); 
  $ml[1]=strlen($m[1]); 

  $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) ); 

  if( $tmp[1][0] == "up" ) 
      $dat[status] = ""; 
  elseif( $tmp[1][0] == "down" ) 
      $dat[status] = "Brak Audycji"; 
  else 

      $dat[status] = ""; 

  if($dat[status]=="") 
  { 

//  [audycja] 
      $m[0]="Stream Title:"; 
      $m[1]="Content Type:"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); 

      if( $tmp[1] ) $dat[audycja] = $tmp[1]; 
      else $dat[audycja] = ""; 

  //  [dj] 
      $m[0]="Stream Genre:"; 
      $m[1]="Stream URL:"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ); 

      if( $tmp[1] ) $dat[dj] = $tmp[1]; 
      else $dat[dj] = ""; 

  //  [statyw] 
      $m[0]="Stream AIM:"; 
      $m[1]="Stream IRC:"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); 

      if( $tmp[1] ) $dat[statyw] = $tmp[1]; 
      else $dat[statyw] = "pilot"; 

  //  [gg] 
      $m[0]="Stream ICQ:"; 
      $m[1]="Stream AIM:"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); 

      if( $tmp[1] ) $dat[gg] = $tmp[1]; 
      else $dat[gg] = ""; 

  //  [ile] 
      $m[0]="kbps with"; 
      $m[1]="listeners"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) ); 

      if( $tmp[1] ) $dat[ile] = $tmp[1][0]; 
      else $dat[ile] = ""; 

    //  [peak] 
      $m[0]="Listener Peak:"; 
      $m[1]="Average"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-7) ); 

      if( $tmp[1] ) $dat[peak] = $tmp[1]; 
      else $dat[peak] = ""; 

//  [nuta] 
      $m[0]="Current Song:"; 
      $m[1]="Written by Ste"; 
      $mp[0]=strpos($in,$m[0]); 
      $mp[1]=strpos($in,$m[1]); 
      $ml[0]=strlen($m[0]); 
      $ml[1]=strlen($m[1]); 

      $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) ); 

      if( $tmp[1] ) $dat[nuta] = $tmp[1]; 
      else $dat[nuta] = ""; 

  } 
} 
else 

{ 
  $dat=array(); 
  $dat[status]="err"; 
} 

$co           =   array('[status]','[audycja]','[dj]','[statyw]','[gg]','[ile]','[peak]','[nuta]'); 
$naco         =   array($dat[status],$dat[audycja],$dat[dj],$dat[statyw],$dat[gg],$dat[ile],$dat[peak],$dat[nuta]); 
$sc[table1]   =   str_replace($co,$naco,$sc[table1]); 
$sc[table2]   =   str_replace($co,$naco,$sc[table2]); 
$sc[table3]   =   str_replace($co,$naco,$sc[table3]); 
$sc[table4]   =   str_replace($co,$naco,$sc[table4]); 

?> 


   <table cellpadding="0" cellspacing="0" width="100" height="100"> 
      
     <!-- Przykładowe użycie skryptu, wyświetlające Prezentera, Nazwę audycji i nute, która leci. --> 
      
       <tr> 
           <td></td> 
           <td colspan="3"> 
           <font size="2" color="#858585">Prezenter:<MARQUEE width="186" SCROLLAMOUNT=2 ><b><?echo $sc[table1]; ?></b></MARQUEE></font></td> 
           <td height="26">&nbsp;</td> 
           </tr> 
       <tr> 
           <td></td> 
           <td></td> 
           <td colspan="2"> 
           <font size="2" color="#858585">Audycja:<MARQUEE width="182" SCROLLAMOUNT=2 height="18" ><b><?echo $sc[table2]; ?></MARQUEE></b></font></td> 
           <td height="27">&nbsp;</td> 
       </tr> 
       <tr> 
           <td></td> 
           <td></td> 
           <td colspan="2"> 
           <font size="2" color="#858585">Nuta:<MARQUEE width="182" SCROLLAMOUNT=2 height="18" ><b><?echo $sc[table3]; ?></MARQUEE></b></font></td> 
           <td height="27">&nbsp;</td> 
       </tr> 
   </table> 



</html>

Aby wyświetlić go na danej podstronie, należy dodać w kodzie, np w index.php linijkę: 

<?include 'stats.php';?>

Od znacznika <table> możemy edytować wygląd statystyk. To jest tylko przykładowy kod

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Podobna zawartość

    • Przez Lord Fenrir
      Cześć, stworzyłem sobie klasę, którą wykorzystuje do łączenia się z bazą danych i teraz mam mały problem gdyż nie wiem, w którym momencie i kiedy powinienem ją wywoływać. Przy każdej akcji, która się wykona powinienem dołączać za pomocą require_once() plik z danymi czy może jest na to jakiś inny sposób? Bo na logikę takie rozwiązanie średnio mi pasuje gdyż za każdym razem będzie tworzony nowy obiekt, a to raczej nie jest najlepsze rozwiązanie, prawda? Chociaż z drugiej strony back-endu w ogóle nie tykam więc nie za bardzo się znam.
    • Przez MyDevil.net
      IOD oraz przygotowywanie regulaminów, polityk prywatności oraz bezpieczeństwa

      System ticketów
      Z przyjemnością informujemy o wprowadzeniu na MyDevil.net nowego kanału komunikacji z naszym Supportem - systemu ticketów.
      Oznacza to, że od teraz można tworzyć nowe zgłoszenia bezpośrednio w panelu płatności: Zaloguj się - Panel Klienta ADMIN.NET.PL lub poprzez przesłanie wiadomości e-mail na dotychczas używane przez nas adresy e-mail - wtedy ticket zostanie utworzony automatycznie.

      GDPR (RODO), Inspektor Ochrony Danych (IOD)
      Zapraszamy do kontaktu wszystkich naszych klientów zainteresowanych podpisaniem "Umowy o powierzeniu przetwarzania danych osobowych". Za podpisanie umowy nie pobieramy dodatkowych opłat. Dane na umowie muszą być takie same jak dane podane nam do faktur. W sprawie umów prosimy o kontakt wyłącznie z adresów e-mail kontaktowych dla zamówionych usług na adres pomoc@mydevil.net lub stworzenie nowego ticketu w panelu płatności.
      Jednocześnie informujemy, że jest możliwość za naszym pośrednictwem skorzystania z dodatkowych usług Inspektora Ochrony Danych (IOD). Jest to oferta dla firm/osób, które nie chcą samodzielnie zajmować się sprawami związanymi z GDPR (RODO). Więcej informacji i formularz kontaktowy w sprawie usług Inspektora Ochrony Danych (IOD):  MyDevil.net

      Przygotowywanie regulaminów, polityk prywatności oraz bezpieczeństwa
      Jest to usługa kierowana głównie (ale nie tylko) do sklepów, po jej skorzystaniu Klient otrzymuje:
       
      Indywidualny regulamin sklepu internetowego Politykę prywatności i bezpieczeństwa Pełny rok aktualizacji stanu prawnego Certyfikat dla sklepu: Profesjonalny Regulamin Weryfikację procesu zakupowego oraz obowiązków informacyjnych Wzór pouczenia o odstąpieniu od umowy Wzór pisma: odstąpienie od umowy Wzór pisma: reklamacja towaru / usługi  
      Zainteresowanych usługą zapraszamy do wypełnienia formularza na stronie:

      MyDevil.net
×