Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML] Statystyka shoutcast i błąd fsockopen
-Msichal-
post 20.09.2008, 13:38:42
Post #1





Goście







Witam,zrobiłem sobię serwer shoutcast, właściwie to będą 3 i chcę żeby na jednej stronie były 3 skrypty, które pokazują info, niestety, nie mogę doprowadzić tego do działania, pojedyńczy skrypt wygląda tak:
  1. <font face="arial" color="ffffff" size="2">
  2. <?
  3.   $sc[czas]       =   180;
  4.   $sc[host]       =   "***********";
  5.   $sc[port]       =   8000;
  6.  $sc[template]   =   " ONLIN:<b> [status]</b><br>Nazwa Radia&nbsp:<b>[dj]</b><br>Prezenter:<b> [genre] </b><br>Gadu-gadu Dj-:<b>[gg]</b><br>Slucha&nbsp:<b> [ile] osób</b><br>";
  7. #   $sc[template]   =   "<b>Status (on/off/err)&nbsp:</b> [status]<br><b>GG DJ-:</b> [gg]<br><b>D:</b> [genre]<br><b>Ilu sluchaczy aktualnie/maksymalnie/pea:</b> [ile]/[max]/[peak]<br>";
  8.  
  9.  
  10.  
  11.  
  12. ?>
  13. <html>
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  16. <META HTTP-EQUIV="Refresh" CONTENT="<?=$sc[czas]?>; URL="">
  17. </head>
  18. <body bgcolor="000000">
  19. <?
  20. if($fp = fsockopen($sc[host], $sc[port]))
  21. {
  22. fputs($fp,"GET /index.html HTTP/1.0r\nUser-Agen: XML Getter (Mozilla Compatible)r\nr\n");
  23. fgets($fp);fgets($fp);fgets($fp);
  24.       while(!feof($fp)) $in.=strip_tags(fgets($fp));
  25. fclose($fp);
  26.  # echo $in;
  27.  
  28. //  [status]
  29.   $m[0]="Server is currently";
  30.   $m[1]="";
  31.   $mp[0]=strpos($in,$m[0]);
  32.   $mp[1]=@strpos($in,$m[1]);
  33.   $ml[0]=strlen($m[0]);
  34.   $ml[1]=strlen($m[1]);
  35.  
  36.   $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) );
  37.  
  38.   if( $tmp[1][0] == "up" )
  39.       $dat[status] = "on";
  40.   elseif( $tmp[1][0] == "down" )
  41.       $dat[status] = "off";
  42.   else
  43.       $dat[status] = "err";
  44.  
  45.   if($dat[status]=="on")
  46.   {
  47.   //  [dj]
  48.       $m[0]="Stream Titl:";
  49.       $m[1]="Content Typ:";
  50.       $mp[0]=strpos($in,$m[0]);
  51.       $mp[1]=strpos($in,$m[1]);
  52.       $ml[0]=strlen($m[0]);
  53.       $ml[1]=strlen($m[1]);
  54.  
  55.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  56.  
  57.       if( $tmp[1] ) $dat[dj] = $tmp[1];
  58.       else $dat[dj] = "err";
  59.  
  60.   //  [gg]
  61.       $m[0]="Stream AI:";
  62.       $m[1]="Stream IR:";
  63.       $mp[0]=strpos($in,$m[0]);
  64.       $mp[1]=strpos($in,$m[1]);
  65.       $ml[0]=strlen($m[0]);
  66.       $ml[1]=strlen($m[1]);
  67.  
  68.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  69.  
  70.       if( $tmp[1] ) $dat[gg] = $tmp[1];
  71.       else $dat[gg] = "err";
  72.  
  73.   //  [genre]
  74.       $m[0]="Stream Genr:";
  75.       $m[1]="Stream UR:";
  76.       $mp[0]=strpos($in,$m[0]);
  77.       $mp[1]=strpos($in,$m[1]);
  78.       $ml[0]=strlen($m[0]);
  79.       $ml[1]=strlen($m[1]);
  80.  
  81.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) );
  82.  
  83.       if( $tmp[1] ) $dat[genre] = $tmp[1];
  84.       else $dat[genre] = "err";
  85.  
  86.   //  [ile]
  87.       $m[0]="kbps with";
  88.       $m[1]="listeners";
  89.       $mp[0]=strpos($in,$m[0]);
  90.       $mp[1]=strpos($in,$m[1]);
  91.       $ml[0]=strlen($m[0]);
  92.       $ml[1]=strlen($m[1]);
  93.  
  94.       $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) );
  95.  
  96.       if( $tmp[1] ) $dat[ile] = $tmp[1][0];
  97.       else $dat[ile] = "err";
  98.  
  99.   //  [max]
  100.       $m[0]="kbps with";
  101.       $m[1]="listeners";
  102.       $mp[0]=strpos($in,$m[0]);
  103.       $mp[1]=strpos($in,$m[1]);
  104.       $ml[0]=strlen($m[0]);
  105.       $ml[1]=strlen($m[1]);
  106.  
  107.       $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) );
  108.  
  109.       if( $tmp[1] ) $dat[max] = $tmp[1][2];
  110.       else $dat[max] = "err";
  111.  
  112.   //  [peak]
  113.       $m[0]="Listener Pea:";
  114.       $m[1]="Average";
  115.       $mp[0]=strpos($in,$m[0]);
  116.       $mp[1]=strpos($in,$m[1]);
  117.       $ml[0]=strlen($m[0]);
  118.       $ml[1]=strlen($m[1]);
  119.  
  120.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-7) );
  121.  
  122.       if( $tmp[1] ) $dat[peak] = $tmp[1];
  123.       else $dat[peak] = "err";
  124.  
  125.  
  126.   }
  127. }
  128. else
  129. {
  130.   $dat=array();
  131.   $dat[status]="err";
  132. }
  133.  
  134. $co             =   array('[status]','[dj]','[gg]','[genre]','[ile]','[max]','[peak]');
  135. $naco           =   array($dat[status],$dat[dj],$dat[gg],$dat[genre],$dat[ile],$dat[max],$dat[peak]);
  136. $sc[template]   =   str_replace($co,$naco,$sc[template]);
  137.  
  138. echo $sc[template];
  139. ?>
  140. </font>
  141. </body>
  142. </html><BR>
  143. <a href=***************:8000/listen.pls>
  144. <b>Kliknij by posłuchać</b></a><br><br>


Jest to leciutko przerobiony kod z jakiejś strony (zmienione tylko nazwy typu online itp.)
Jeżeli umieszczę 3 takie skrypty na jednej stronie wyskakuję błąd łączenia się przez fsockopen, próbowałem nawet zmienić nazwy zmiennych dla poszczególnych serwerów, teraz zrobilem kazdy serwer w oddzielnym IFRAME i dalej nie działa ;/
Może po prostu nie możę się połączyć bo serwer nie jest włączony questionmark.gif Mam włączony tylko pierwszy i ten działa, a w innych mam już błędy ;/...

Proszę o pomoc.
Go to the top of the page
+Quote Post
-Msichal-
post 20.09.2008, 13:42:27
Post #2





Goście







Ojjj, bardzo przepraszam, nie dopisałem nic do tematu... Bardzo proszę moda o dopisanie do tematu "Statystyka shoutcast i błąd fsockopen"
Go to the top of the page
+Quote Post
-Msichal-
post 20.09.2008, 16:22:48
Post #3





Goście







Ajjjj, pomyłka, jednak nie jest to problem ze strony kodu, po prostu przy wyłączonym serwerze pokazuje błąd.....


Teraz mam pytanie, czy ktoś mógłby dać mi przykład "usprawnienia" tego kodu tak, by przy braku połączenia z serwerem drukował duży napis OFFLINE zamiast błędu questionmark.gif Bardzo proszę o pomoc!
Go to the top of the page
+Quote Post
estidi
post 20.09.2008, 18:18:20
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 2
Dołączył: 23.06.2008

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


mozna dopisac wlasna obsluge bledow
lub tez wylaczyc bledy w ogole i sprawdzac czy sie polaczylo czy nie w jakims warunku
Go to the top of the page
+Quote Post
-oLOL-
post 20.09.2008, 20:48:03
Post #5





Goście







Problem tylko w tym że nie znam się na HP, a jedynie dostosowalem ten skrypt do wlasnych potrzeb.
Z tą obsługą błędów to trzeba mi żeby zamiast
  1. <?php
  2. Warningfsockopen(: unable to connect to radio-miaczyn-3.no-ip.org8000 in /home/inne/msichal/public_html/radyjo/s3.php on line 22
  3. ?>
pokazywało się OFFLINE... Najlepiej prosiłbym o "gotowca" albo jakieś polecenia jak to zrobić...
Go to the top of the page
+Quote Post
DREEMus
post 20.09.2008, 22:37:28
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 34
Dołączył: 4.09.2008
Skąd: Wrocław

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


linia 133 ...

zamień
Kod
$dat[status]="err";


na
Kod
$dat[status]="echo 'OFFLINE'";


powinno działać ;D chyba biggrin.gif

Ten post edytował DREEMus 20.09.2008, 22:40:51


--------------------
Serwer : Acer Aspire 5050 : AMD Turion X2 2x1.9 MHz : 2x2 GB Dual : 250GB + 500 GB USB
Warsztat : Apache v2.2 : PHP v5.2 : MySQL v5.0 : phpMyAdmin v3.4 : phpDesigner v7
Go to the top of the page
+Quote Post
-Msichal-
post 22.09.2008, 10:06:41
Post #7





Goście







No dobra przerzuciłem się an inny skrypt, który obecnie wygląda tak:
  1. <!--
  2.  
  3. SKRYPT STATYSTYK SERWERA SHOUTCAST
  4. DLA RADIA INTERNETOWEGO
  5. grafika, html & uzupelnienia w skrypcie php (c) Majkell 2005
  6. Portal EMSoft - Polskie Centrum SHOUTcast
  7. <a href=\"htt://www.radiostacja.prv.pl\" target=\"_blank\">htt://www.radiostacja.prv.pl</a>
  8.  
  9. -->
  10.  
  11. <?
  12.   $sc[czas]       =   180;
  13.   $sc[host]       =   "po-co-to-wam-potrzebne ?biggrin.gif";
  14.   $sc[port]       =   8000;
  15.  
  16. $sc[template1]   =  "<b>[radio]</b>";
  17. $sc[template2]   =  "<b>[aim]</b>";
  18.  
  19. if($fp = fsockopen($sc[host], $sc[port]))
  20. {
  21. fputs($fp,"GET /index.html HTTP/1.0r\nUser-Agen: XML Getter (Mozilla Compatible)r\nr\n");
  22. fgets($fp);fgets($fp);fgets($fp);
  23.       while(!feof($fp)) $in.=strip_tags(fgets($fp));
  24. fclose($fp);
  25.  
  26. a
  27. //  [status]
  28.   $m[0]="Server is currently";
  29.   $m[1]="";
  30.   $mp[0]=strpos($in,$m[0]);
  31.   $mp[1]=@strpos($in,$m[1]);
  32.   $ml[0]=strlen($m[0]);
  33.   $ml[1]=strlen($m[1]);
  34.  
  35.   $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , 5 ) ) );
  36.  
  37.   if( $tmp[1][0] == "up" )
  38.       $dat[status] = "On";
  39.   elseif( $tmp[1][0] == "down" )
  40.       $dat[status] = "Off";
  41.   else
  42.       $dat[status] = "err";
  43.  
  44.   if($dat[status]=="On")
  45.   {
  46.   //  [radio]
  47.       $m[0]="Stream Titl:";
  48.       $m[1]="Content Typ:";
  49.       $mp[0]=strpos($in,$m[0]);
  50.       $mp[1]=strpos($in,$m[1]);
  51.       $ml[0]=strlen($m[0]);
  52.       $ml[1]=strlen($m[1]);
  53.  
  54.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  55.  
  56.       if( $tmp[1] ) $dat[radio] = $tmp[1];
  57.       else $dat[radio] = "err";
  58.  
  59.   //  [aim]
  60.       $m[0]="Stream AI:";
  61.       $m[1]="Stream IR:";
  62.       $mp[0]=strpos($in,$m[0]);
  63.       $mp[1]=strpos($in,$m[1]);
  64.       $ml[0]=strlen($m[0]);
  65.       $ml[1]=strlen($m[1]);
  66.  
  67.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1] ) );
  68.  
  69.       if( $tmp[1] ) $dat[aim] = $tmp[1];
  70.       else $dat[aim] = "err";
  71.  
  72.   //  [genre]
  73.       $m[0]="Stream Genr:";
  74.       $m[1]="Stream UR:";
  75.       $mp[0]=strpos($in,$m[0]);
  76.       $mp[1]=strpos($in,$m[1]);
  77.       $ml[0]=strlen($m[0]);
  78.       $ml[1]=strlen($m[1]);
  79.  
  80.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) );
  81.  
  82.       if( $tmp[1] ) $dat[genre] = $tmp[1];
  83.       else $dat[genre] = "err";
  84.  
  85.   //  [ile]
  86.       $m[0]="kbps with";
  87.       $m[1]="listeners";
  88.       $mp[0]=strpos($in,$m[0]);
  89.       $mp[1]=strpos($in,$m[1]);
  90.       $ml[0]=strlen($m[0]);
  91.       $ml[1]=strlen($m[1]);
  92.  
  93.       $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) );
  94.  
  95.       if( $tmp[1] ) $dat[ile] = $tmp[1][0];
  96.       else $dat[ile] = "err";
  97.  
  98.   //  [max]
  99.       $m[0]="kbps with";
  100.       $m[1]="listeners";
  101.       $mp[0]=strpos($in,$m[0]);
  102.       $mp[1]=strpos($in,$m[1]);
  103.       $ml[0]=strlen($m[0]);
  104.       $ml[1]=strlen($m[1]);
  105.  
  106.       $tmp[1]=explode( " " , trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-2 ) ) );
  107.  
  108.       if( $tmp[1] ) $dat[max] = $tmp[1][2];
  109.       else $dat[max] = "err";
  110.  
  111.   //  [peak]
  112.       $m[0]="Listener Pea:";
  113.       $m[1]="Average";
  114.       $mp[0]=strpos($in,$m[0]);
  115.       $mp[1]=strpos($in,$m[1]);
  116.       $ml[0]=strlen($m[0]);
  117.       $ml[1]=strlen($m[1]);
  118.  
  119.       $tmp[1]=trim( substr( $in , $mp[0] + $ml[0] , $mp[1]-$mp[0]-$ml[1]-7) );
  120.  
  121.       if( $tmp[1] ) $dat[peak] = $tmp[1];
  122.       else $dat[peak] = "err";
  123.  
  124.  
  125.   }
  126. }
  127. else
  128. {
  129.   $dat=array();
  130.   $dat[status]="err";
  131. }
  132.  
  133. $co             =   array('[status]','[radio]','[aim]','[genre]','[ile]','[max]','[peak]');
  134. $naco           =   array($dat[status],$dat[radio],$dat[aim],$dat[genre],$dat[ile],$dat[max],$dat[peak]);
  135. $sc[template1]   =   str_replace($co,$naco,$sc[template1]);
  136. $sc[template2]   =   str_replace($co,$naco,$sc[template2]);
  137.  
  138.  $fp1 = @fsockopen($sc[host], $sc[port], &$errno, $errstr, 10, $float ,3); // próbowałem ustawić timeout - bez rezultatu...
  139.  
  140.  if (!$fp1) {
  141.   $text = "Aktualnie nie nadajemy";
  142.  } else {
  143.   stream_set_timeout($fp1, 2);
  144.   fputs($fp1, "GET /7 HTTP/1.1\nUser-Agen:Mozilla\n\n");
  145.  
  146.   for($i = 0; $i < 1; $i++) {
  147.    if (feof($fp1)) break;
  148.    $fp_data1 = fread($fp1, 31337);
  149.    usleep(500000);
  150.   }
  151.  
  152.   $fp_data1 = ereg_replace("^.*<body>", "", $fp_data1);
  153.   $fp_data1 = ereg_replace("</body>.*", "", $fp_data1);
  154.  
  155.   list($current1, $status1, $peak1, $max1, $reported1, $bit1, $song1) = explode(",", $fp_data1, 7);
  156.  
  157.   if ($status1 == "1")
  158.    $text = "$song1";
  159. else
  160.    $text = "Aktualnie nie nadajemy";
  161.  }
  162.  
  163. // TU WSTAW ADRESY DO ZDJEC DJ'OW - WEDLUG WZORU
  164.  
  165. if ($dat[aim] == "AutoPilot") $fotka = "pilot.jpg"; else
  166. if ($dat[aim] == "*") $fotka = "brak.gif"; else
  167. if ($dat[aim] == "*") $fotka = "brak.gif"; else
  168. if ($dat[aim] == "*") $fotka = "brak.gif"; else
  169.  
  170. $fotka = "brak.gif";
  171.  
  172. ?>
  173.  
  174. <table cellspacing="0" cellpadding="0" height="216" width="140" border="0" background ="tlo.gif">
  175. <tr><td width ="100%" height ="19" colspan ="2">
  176. <center><font size ="2" face ="Verdana" color ="black"><b>
  177. <a name="pokaz">
  178. Radio *
  179. </b><br></font></center>
  180. </td></tr>
  181. <tr><td width ="80%" height ="15" valign ="top" colspan ="2">
  182. <center><font size ="1" face ="Arial"><b>
  183. <A href ="htt://******" target ="_blank"><font color ="brown">Nasze RadiO</font></A>
  184. </b><br></font></center>
  185. </td></tr>
  186. <tr><td width ="100%" height ="15" colspan ="2">
  187. </td></tr>
  188. <tr><td width ="100%" height ="17" valign ="top" colspan ="2">
  189. <center><font size ="2" face ="Courier" color ="black"><b>
  190. <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="scroll" onMouseOver='this.stop()' onMouseOut='this.start()'>
  191. <? echo $sc[template1]; ?>
  192. </MARQUEE>
  193. </font></center>
  194. </td></tr>
  195. <tr><td width ="100%" height ="15" colspan ="2">
  196. </td></tr>
  197. <tr><td width ="100%" height ="17" valign ="top" colspan ="2">
  198. <center><font size ="2" face ="Courier" color ="black"><b>
  199. <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="scroll" onMouseOver='this.stop()' onMouseOut='this.start()'>
  200. <? echo $text; ?>
  201. </MARQUEE>
  202. </font></center>
  203. </td></tr>
  204. <tr><td width ="100%" height ="15" colspan ="2">
  205. </td></tr>
  206. <tr><td width ="100%" height ="17" valign ="top" colspan ="2">
  207. <center><font size ="2" face ="Courier" color ="black"><b>
  208. <MARQUEE width="80%" SCROLLAMOUNT="4" behavior ="alternate" onMouseOver='this.stop()' onMouseOut='this.start()'>
  209. <? echo $sc[template2]; ?>
  210. </MARQUEE>
  211. </font></center>
  212. </td></tr>
  213. <tr><td width ="100%" height ="6" colspan ="2">
  214. </td></tr>
  215. <tr><td width ="65" height ="80" valign ="top">
  216. <a href ="******:8000/listen.pls"><img src ="separ.gif" width ="65" height ="70" border ="0"></a><br clear ="all">
  217. <td width ="75" height ="80" valign ="top">
  218. <? print "<img src ='$fotka' width ='62' height ='70'>"; ?>
  219. <br clear ="all">
  220. </td></tr>
  221. </table>


I teraz mam trochę podobny problem, skrypt pokazuje, jeśli nie może się połączyć, ale przed statusem wywala błąd i na dodatek skrypt ładuje się kilka minut...
O ile z przesunięciem sobie poradziłem, bo status mam w IFRAME, wystarczyło zrobić kotwice i wyłączyc scrollowanie, to ze stroną ładującą sie 2-3 minuty sobie nie poradziłem, próbowałem ustawiać różne timeouty dla fsockopen ale nic nie działa...

Proszę o pomoc!
Go to the top of the page
+Quote Post
blaster44
post 12.05.2009, 13:37:27
Post #8





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 10.05.2009

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


Dołączam się do prośby.
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: 19.07.2025 - 08:01