Shoutcast και εμφάνιση τραγουδιού σε php

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
Dazed_and_confused
Δημοσιεύσεις: 743
Εγγραφή: 29 Νοέμ 2003 19:38
Τοποθεσία: Χίος, Θεσσαλονίκη
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από Dazed_and_confused » 09 Ιουν 2004 14:08

Καλημέρα,
έχετε ίδεα πως μπορώ να φαίνεται το τραγούδι που παίζει αυτή τη στιγμή στο shoutcast server στο site μου με την βοήθεια της php ή άλλης γλώσσας?

thnx

Άβαταρ μέλους
Cha0s
SysAdmin
Δημοσιεύσεις: 10242
Εγγραφή: 28 Ιούλ 2001 03:00

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από Cha0s » 09 Ιουν 2004 15:07

Μία ψιλο μπακαλίστικη λύση είναι να διαβάζει η php την σελίδα του shoutcast και να ψάχνει την γραμμή όπου αναφέρει τον τίτλο του κομματιού και να την περνάει σε κάποια μεταβλητή και εσύ μετά να την τυπώνεις όπου θες.

Αυτό όμως θα αργεί ειδικά αν δεν είναι στον ίδιο σερβερ ο webserver με τον shoutcast server.

Άβαταρ μέλους
iNDEFiX
Honorary Member
Δημοσιεύσεις: 2569
Εγγραφή: 20 Δεκ 2002 00:48
Τοποθεσία: κλειστή λόγω έργων
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από iNDEFiX » 09 Ιουν 2004 17:38

Ligo megalo men... alla kalo ;) me sockets + XML

Κώδικας: Επιλογή όλων

<?php
$shout_server = "";
$shout_port = "";
$shout_password = "";

$xmldata = "";
$write = "";
$databits&#91;&#93; = Array&#40;&#41;;
$depth = 0;
$songcount = 0;
$songs&#91;&#93;&#91;&#93; = Array&#40;&#41;;
$users&#91;&#93;&#91;&#93; = Array&#40;&#41;;
$usercount = 0;

$fp = fsockopen &#40;"$shout_server", $shout_port, $errno, $errstr, 30&#41;;
if &#40;!$fp&#41; &#123;
    switch &#40;$errno&#41; &#123;
	   case 9&#58;
	      ?>
		  <font face="verdana" size="7" color="#ffffff"><b>Unable to connect</b></font>
		  <br><br>
		  <font size="2" face="verdana" color="#ffffff">
		  This script was unable to connect to the SHOUTcast DNAS.
		  </font>
		  </body>
		  </html>
		  <?php
		  break;
	&#125;
	exit;
&#125; else &#123;
    fputs &#40;$fp, "GET /admin.cgi?pass=$shout_password&mode=viewxml&page=1 HTTP/1.0\r\nHost&#58; localhost\r\nUser-agent&#58; Mozilla\r\n\r\n"&#41;;
    while &#40;!feof&#40;$fp&#41;&#41; &#123;
        $xmldata .= fgets &#40;$fp,128&#41;;
    &#125;
    fclose &#40;$fp&#41;;
	$xmldata = substr&#40;$xmldata, strpos&#40;$xmldata, "<?xml"&#41;&#41;;
	$xmldata = eregi_replace&#40;"&#x27;", "'", $xmldata&#41;;

	function startElement&#40;$parser, $name, $attrs&#41; &#123;
	   global $write;
	   global $databits;
   	   $databits&#91;"$name"&#93; = "";
	   $write = "$name";
    &#125;

    function endElement&#40;$parser, $name&#41; &#123;
       global $write;
	   global $databits;
	   
    &#125;
    
	function characterData&#40;$parser, $data&#41; &#123;
       global $write;
	   global $databits;
       $databits&#91;"$write"&#93; = $data;
    &#125;
	
	$xml_parser = xml_parser_create&#40;&#41;;
	xml_set_element_handler&#40;$xml_parser, "startElement", "endElement"&#41;;
	xml_set_character_data_handler&#40;$xml_parser, "characterData"&#41;;
	xml_parse&#40;$xml_parser, $xmldata, strlen&#40;$xmldata&#41;&#41;;
	xml_parser_free&#40;$xml_parser&#41;;
	
	if &#40;$use_mysql_features == true&#41; &#123;
	   $link = mysql_connect &#40;"$mysql_server", "$mysql_user", "$mysql_pass"&#41;;
       mysql_select_db&#40;"$mysql_db", $link&#41;;
	   $datenow = date&#40;"Y-m-d"&#41;;
	   $timenow = date&#40;"H&#58;i&#58;s"&#41;;
	   $cl = $databits&#91;"CURRENTLISTENERS"&#93;;
	   $pl = $databits&#91;"PEAKLISTENERS"&#93;;
	   $ml = $databits&#91;"MAXLISTENERS"&#93;;
	   $rl = $databits&#91;"REPORTEDLISTENERS"&#93;;
	   $results = mysql_query&#40;"insert into listenerhistory &#40;endate, entime, cl, pl, ml, rl&#41; values &#40;'$datenow', '$timenow', $cl, $pl, $ml, $rl&#41;", $link&#41;;
	   mysql_close &#40;$link&#41;;
	&#125;
	
	$xmldata = "";
	
	$fp = fsockopen &#40;"$shout_server", $shout_port, $errno, $errstr, 30&#41;;
	fputs &#40;$fp, "GET /admin.cgi?pass=$shout_password&mode=viewxml&page=4 HTTP/1.0\r\nHost&#58; localhost\r\nUser-agent&#58; Mozilla\r\n\r\n"&#41;;
    while &#40;!feof&#40;$fp&#41;&#41; &#123;
        $xmldata .= fgets &#40;$fp,128&#41;;
    &#125;
    fclose &#40;$fp&#41;;
	$xmldata = substr&#40;$xmldata, strpos&#40;$xmldata, "<?xml"&#41;&#41;;
	$xmldata = eregi_replace&#40;"&#x27;", "'", $xmldata&#41;;
	
	function startElementA&#40;$parser, $name, $attrs&#41; &#123;
	   global $write;
	   global $songcount;
       switch &#40;$name&#41; &#123;
	      case "SONG"&#58;
		     $songcount++;
		     break;
	      case "PLAYEDAT"&#58;
		     $write = "TIME";
			 break;
		  case "TITLE"&#58;
		     $write = "TITLE";
			 break;
	   &#125;
    &#125;

    function endElementA&#40;$parser, $name&#41; &#123;
       global $write;
	   
    &#125;
    
	function characterDataA&#40;$parser, $data&#41; &#123;
       global $write;
	   global $songs;
	   global $songcount;
	   $songs&#91;$songcount&#93;&#91;"$write"&#93; = $data;
    &#125;
	
	$xml_parser = xml_parser_create&#40;&#41;;
	xml_set_element_handler&#40;$xml_parser, "startElementA", "endElementA"&#41;;
	xml_set_character_data_handler&#40;$xml_parser, "characterDataA"&#41;;
	xml_parse&#40;$xml_parser, $xmldata, strlen&#40;$xmldata&#41;&#41;;
	xml_parser_free&#40;$xml_parser&#41;;
	
	$xmldata = "";
	
	$fp = fsockopen &#40;"$shout_server", $shout_port, $errno, $errstr, 30&#41;;
	fputs &#40;$fp, "GET /admin.cgi?pass=$shout_password&mode=viewxml&page=3 HTTP/1.0\r\nHost&#58; localhost\r\nUser-agent&#58; Mozilla\r\n\r\n"&#41;;
    while &#40;!feof&#40;$fp&#41;&#41; &#123;
        $xmldata .= fgets &#40;$fp,128&#41;;
    &#125;
    fclose &#40;$fp&#41;;
	$xmldata = substr&#40;$xmldata, strpos&#40;$xmldata, "<?xml"&#41;&#41;;
	$xmldata = eregi_replace&#40;"&#x27;", "'", $xmldata&#41;;
	
	function startElementB&#40;$parser, $name, $attrs&#41; &#123;
	   global $write;
	   global $usercount;
       switch &#40;$name&#41; &#123;
	      case "LISTENER"&#58;
		     $usercount++;
		     break;
	   &#125;
	   $write = $name;
    &#125;

    function endElementB&#40;$parser, $name&#41; &#123;
       global $write;
	   
    &#125;
    
	function characterDataB&#40;$parser, $data&#41; &#123;
       global $write;
	   global $users;
	   global $usercount;
	   $users&#91;$usercount&#93;&#91;"$write"&#93; = $data;
    &#125;
	
	$xml_parser = xml_parser_create&#40;&#41;;
	xml_set_element_handler&#40;$xml_parser, "startElementB", "endElementB"&#41;;
	xml_set_character_data_handler&#40;$xml_parser, "characterDataB"&#41;;
	xml_parse&#40;$xml_parser, $xmldata, strlen&#40;$xmldata&#41;&#41;;
	xml_parser_free&#40;$xml_parser&#41;;
&#125;
?>

Άβαταρ μέλους
gaucho
Honorary Member
Δημοσιεύσεις: 2408
Εγγραφή: 22 Δεκ 2002 13:18

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από gaucho » 09 Ιουν 2004 21:54

ti les re popopiko?

xexexe

Άβαταρ μέλους
iNDEFiX
Honorary Member
Δημοσιεύσεις: 2569
Εγγραφή: 20 Δεκ 2002 00:48
Τοποθεσία: κλειστή λόγω έργων
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από iNDEFiX » 10 Ιουν 2004 11:48

Dynato script :pint:

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από Rapid-eraser » 11 Ιουν 2004 14:22

etsi etsi :P
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Άβαταρ μέλους
Dazed_and_confused
Δημοσιεύσεις: 743
Εγγραφή: 29 Νοέμ 2003 19:38
Τοποθεσία: Χίος, Θεσσαλονίκη
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από Dazed_and_confused » 06 Ιούλ 2004 16:00

thnx για το script indefix.

Εγώ τώρα απλά βάζω τα στοιχεία μου στις 3 πρώτες μεταβλήτες?

μου έβγαλε το εξής error:
Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/rockarol/public_html/block-radio.php on line 15

Warning: fsockopen(): unable to connect to http://rockarolla.cityhost.gr:60004 in /home/rockarol/public_html/block-radio.php on line 15

Άβαταρ μέλους
Dazed_and_confused
Δημοσιεύσεις: 743
Εγγραφή: 29 Νοέμ 2003 19:38
Τοποθεσία: Χίος, Θεσσαλονίκη
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από Dazed_and_confused » 16 Ιούλ 2004 20:23

καμία ιδέα ε? :(

Άβαταρ μέλους
tasos_art
Δημοσιεύσεις: 152
Εγγραφή: 22 Νοέμ 2007 14:44
Τοποθεσία: Χαλκιδική
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από tasos_art » 24 Ιαν 2008 16:30

to exeis dokimasei kaneis
egw to ebala alla den kanei tipota
Εικόνα

Άβαταρ μέλους
Croc
Δημοσιεύσεις: 105
Εγγραφή: 18 Μαρ 2006 22:40
Τοποθεσία: Volos
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από Croc » 28 Ιαν 2008 18:33

http://www.freestuff.gr/forums/viewtopic.php?t=33975
εδω ειναι το τοπικ για το τελευαταιο τραγουδου,status etc..
βασικα δεν το εχω βαλει ολοκληρω αλλα....εαν θελετε το βαζω...ας μου δωσει κ μενα καποιος μια λυση ομως..!

για να βαζεις host τυπου ip λειτουργει..αλλα εγω θελω να βαζω url

ΒΟΗΘΕΙΑ! ΕΥΧΑΡΙΣΤΩ!

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από soteres2002 » 31 Ιαν 2008 01:49

allakse to orisma tis diefthinsis px $ip se gethostbyname($hostname), etsi tha kanei resolve to hostname se IP apo mono tou.

silo
Δημοσιεύσεις: 66
Εγγραφή: 22 Οκτ 2006 14:20

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από silo » 02 Φεβ 2008 18:32

xairetw, eida sockets ston kwdika tou iNDEFiX kai eipa na ta antikatasthsw me cURL, opote edw einai :

Κώδικας: Επιλογή όλων

<?php
$shout_server = "";
$shout_port = "";
$shout_password = "";

$xmldata = "";
$write = "";
$databits&#91;&#93; = Array&#40;&#41;;
$depth = 0;
$songcount = 0;
$songs&#91;&#93;&#91;&#93; = Array&#40;&#41;;
$users&#91;&#93;&#91;&#93; = Array&#40;&#41;;
$usercount = 0;
$use_agent = 'Mozilla';







$what_to_get = '/admin.cgi?pass='.$shout_password.'&mode=viewxml&page=1'
$con1 = "$shout_server$what_to_get";

	  
	  function i_dont_know_what&#40;$con, $user_agent, $shout_port&#41;&#123;
        $ch = curl_init&#40;&#41;;
        curl_setopt&#40;$ch, CURLOPT_URL,$con&#41;;
        curl_setopt&#40;$ch, CURLOPT_RETURNTRANSFER, 1&#41;;
        curl_setopt&#40;$ch, CURLOPT_TIMEOUT, 60&#41;;
        curl_setopt&#40;$ch, CURLOPT_USERAGENT, $user_agent&#41;;
		curl_setopt&#40;$ch, CURLOPT_PORT, $shout_port&#41;;
        $xmldata = curl_exec&#40;$ch&#41;;

        if &#40;curl_errno&#40;$ch&#41;&#41; &#123;
            print '<font face=\"verdana\" size=\"7\" color=\"#ffffff\"><b>Unable to connect</b></font><br><br><font size=\"2\" face=\"verdana\" color=\"#ffffff\">This script was unable to connect to the SHOUTcast DNAS for the following reason&#58; </font></body></html>'. curl_error&#40;$ch&#41;;
        &#125; 
		
		return $xmldata;
&#125;
		
&#123;

i_dont_know_what&#40;$con1, $user_agent, $shout_port&#41;;

  
	
	
   $xmldata = substr&#40;$xmldata, strpos&#40;$xmldata, "<?xml"&#41;&#41;;
   $xmldata = eregi_replace&#40;"&#x27;", "'", $xmldata&#41;;

   function startElement&#40;$parser, $name, $attrs&#41; &#123;
      global $write;
      global $databits;
         $databits&#91;"$name"&#93; = "";
      $write = "$name";
    &#125;

    function endElement&#40;$parser, $name&#41; &#123;
       global $write;
      global $databits;
      
    &#125;
   
   function characterData&#40;$parser, $data&#41; &#123;
       global $write;
      global $databits;
       $databits&#91;"$write"&#93; = $data;
    &#125;
   
   $xml_parser = xml_parser_create&#40;&#41;;
   xml_set_element_handler&#40;$xml_parser, "startElement", "endElement"&#41;;
   xml_set_character_data_handler&#40;$xml_parser, "characterData"&#41;;
   xml_parse&#40;$xml_parser, $xmldata, strlen&#40;$xmldata&#41;&#41;;
   xml_parser_free&#40;$xml_parser&#41;;
   
   if &#40;$use_mysql_features == true&#41; &#123;
      $link = mysql_connect &#40;"$mysql_server", "$mysql_user", "$mysql_pass"&#41;;
       mysql_select_db&#40;"$mysql_db", $link&#41;;
      $datenow = date&#40;"Y-m-d"&#41;;
      $timenow = date&#40;"H&#58;i&#58;s"&#41;;
      $cl = $databits&#91;"CURRENTLISTENERS"&#93;;
      $pl = $databits&#91;"PEAKLISTENERS"&#93;;
      $ml = $databits&#91;"MAXLISTENERS"&#93;;
      $rl = $databits&#91;"REPORTEDLISTENERS"&#93;;
      $results = mysql_query&#40;"insert into listenerhistory &#40;endate, entime, cl, pl, ml, rl&#41; values &#40;'$datenow', '$timenow', $cl, $pl, $ml, $rl&#41;", $link&#41;;
      mysql_close &#40;$link&#41;;
   &#125;
   
   $xmldata = "";
   
   
   
$what_to_get2 = '/admin.cgi?pass='.$shout_password.'&mode=viewxml&page=4'
$con2 = "$shout_server$what_to_get2";
   
   i_dont_know_what&#40;$con2, $user_agent, $shout_port&#41;;
   
	
	
   $xmldata = substr&#40;$xmldata, strpos&#40;$xmldata, "<?xml"&#41;&#41;;
   $xmldata = eregi_replace&#40;"&#x27;", "'", $xmldata&#41;;
   
   function startElementA&#40;$parser, $name, $attrs&#41; &#123;
      global $write;
      global $songcount;
       switch &#40;$name&#41; &#123;
         case "SONG"&#58;
           $songcount++;
           break;
         case "PLAYEDAT"&#58;
           $write = "TIME";
          break;
        case "TITLE"&#58;
           $write = "TITLE";
          break;
      &#125;
    &#125;

    function endElementA&#40;$parser, $name&#41; &#123;
       global $write;
      
    &#125;
   
   function characterDataA&#40;$parser, $data&#41; &#123;
       global $write;
      global $songs;
      global $songcount;
      $songs&#91;$songcount&#93;&#91;"$write"&#93; = $data;
    &#125;
   
   $xml_parser = xml_parser_create&#40;&#41;;
   xml_set_element_handler&#40;$xml_parser, "startElementA", "endElementA"&#41;;
   xml_set_character_data_handler&#40;$xml_parser, "characterDataA"&#41;;
   xml_parse&#40;$xml_parser, $xmldata, strlen&#40;$xmldata&#41;&#41;;
   xml_parser_free&#40;$xml_parser&#41;;
   
   $xmldata = "";

   
   $what_to_get3 = '/admin.cgi?pass='.$shout_password.'&mode=viewxml&page=3'
$con3 = "$shout_server$what_to_get3";
   
   i_dont_know_what&#40;$con3, $user_agent, $shout_port&#41;;
   
   
   $fp = fsockopen &#40;"$shout_server", $shout_port, $errno, $errstr, 30&#41;;

   $xmldata = substr&#40;$xmldata, strpos&#40;$xmldata, "<?xml"&#41;&#41;;
   $xmldata = eregi_replace&#40;"&#x27;", "'", $xmldata&#41;;
   
   function startElementB&#40;$parser, $name, $attrs&#41; &#123;
      global $write;
      global $usercount;
       switch &#40;$name&#41; &#123;
         case "LISTENER"&#58;
           $usercount++;
           break;
      &#125;
      $write = $name;
    &#125;

    function endElementB&#40;$parser, $name&#41; &#123;
       global $write;
      
    &#125;
   
   function characterDataB&#40;$parser, $data&#41; &#123;
       global $write;
      global $users;
      global $usercount;
      $users&#91;$usercount&#93;&#91;"$write"&#93; = $data;
    &#125;
   
   $xml_parser = xml_parser_create&#40;&#41;;
   xml_set_element_handler&#40;$xml_parser, "startElementB", "endElementB"&#41;;
   xml_set_character_data_handler&#40;$xml_parser, "characterDataB"&#41;;
   xml_parse&#40;$xml_parser, $xmldata, strlen&#40;$xmldata&#41;&#41;;
   xml_parser_free&#40;$xml_parser&#41;;

?> 
Parakalw opoios dokimasei na pei an uparxei kana problhma gt dn to exw dokimasei kapou. Auta :kaloe:

Άβαταρ μέλους
tasos_art
Δημοσιεύσεις: 152
Εγγραφή: 22 Νοέμ 2007 14:44
Τοποθεσία: Χαλκιδική
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από tasos_art » 02 Φεβ 2008 19:17

egw to dokimasa alla bgainei mia keni selida
deite edw http://radio.stratoni.net/radio_status.php
Εικόνα

silo
Δημοσιεύσεις: 66
Εγγραφή: 22 Οκτ 2006 14:20

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από silo » 02 Φεβ 2008 20:28

An 8es, dokimase kai auto

Κώδικας: Επιλογή όλων

<?

$shout_server = "";
$shout_port = "";
$shout_password = "";
$use_agent = 'Mozilla';



$numbers = array&#40;'1','3','4'&#41;;

	  function i_dont_know_what&#40;$con, $user_agent, $shout_port&#41;&#123;
        $ch = curl_init&#40;&#41;;
        curl_setopt&#40;$ch, CURLOPT_URL,$con&#41;;
        curl_setopt&#40;$ch, CURLOPT_RETURNTRANSFER, 1&#41;;
        curl_setopt&#40;$ch, CURLOPT_TIMEOUT, 60&#41;;
        curl_setopt&#40;$ch, CURLOPT_USERAGENT, $user_agent&#41;;
		curl_setopt&#40;$ch, CURLOPT_PORT, $shout_port&#41;;
        $xmldata = curl_exec&#40;$ch&#41;;

        if &#40;curl_errno&#40;$ch&#41;&#41; &#123;
            print '<font face=\"verdana\" size=\"7\" color=\"#ffffff\"><b>Unable to connect</b></font><br><br><font size=\"2\" face=\"verdana\" color=\"#ffffff\">This script was unable to connect to the SHOUTcast DNAS for the following reason.</font></body></html>'. curl_error&#40;$ch&#41;;
        &#125; 
		
		return $xmldata;
&#125;

foreach &#40;$numbers as $number&#41;&#123;

$what_to_get = '/admin.cgi?pass='.$shout_password.'&mode=viewxml&page='.$number;
$con = "$shout_server$what_to_get";

i_dont_know_what&#40;$con, $user_agent, $shout_port&#41;;

echo $xmldata;&#125;


?>	 

Den kanei akribws auto pou 8es, alla etsi mporoume na doume an ftaiei kati me tn curl H einai kapoio allo to problhma.
Τελευταία επεξεργασία από το μέλος silo την 02 Φεβ 2008 20:38, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
tasos_art
Δημοσιεύσεις: 152
Εγγραφή: 22 Νοέμ 2007 14:44
Τοποθεσία: Χαλκιδική
Επικοινωνία:

Shoutcast και εμφάνιση τραγουδιού σε php

Δημοσίευση από tasos_art » 02 Φεβ 2008 20:37

oute pali tipota
briskei sfalma stin 30 grammi $what_to_get = '/admin.cgi?pass='.$shout_password.'&mode=viewxml&page=.'$number'.'

mipos kano tipota egw lathos ?
bazw sto server sketi tin ip
sto port to 8000
kai apo kato ton kodiko gia na mpeis sto admin
Εικόνα

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες