nree Skrevet 22. januar 2006 Del Skrevet 22. januar 2006 (endret) Løsning i annet innlegg lengre ned.. Endret 23. januar 2006 av goggen90 Lenke til kommentar
Zic0 Skrevet 22. januar 2006 Del Skrevet 22. januar 2006 du har jo ikke inkludert shoutcast class'en Lenke til kommentar
nree Skrevet 22. januar 2006 Forfatter Del Skrevet 22. januar 2006 (endret) Fikk det til Endret 22. januar 2006 av goggen90 Lenke til kommentar
Gjest Slettet+6132 Skrevet 22. januar 2006 Del Skrevet 22. januar 2006 Fikk det til 5482749[/snapback] Og en løsning hadde vært kjekt for de som eventuelt måtte ønske det Lenke til kommentar
nree Skrevet 23. januar 2006 Forfatter Del Skrevet 23. januar 2006 Lyttere og sanginfo: <?php include("shoutcast.class.php"); function ConvertSeconds($seconds) { $tmpseconds = substr("00".$seconds % 60, -2); if ($seconds > 59) { if ($seconds > 3599) { $tmphours = substr("0".intval($seconds / 3600), -2); $tmpminutes = substr("0".intval($seconds / 60 - (60 * $tmphours)), -2); return ($tmphours.":".$tmpminutes.":".$tmpseconds); } else { return ("00:".substr("0".intval($seconds / 60), -2).":".$tmpseconds); } } else { return ("00:00:".$tmpseconds); } } $shoutcast = new ShoutCast(); $shoutcast->host = "127.156.123.156"; $shoutcast->port = "8000"; $shoutcast->passwd = "passord"; if ($shoutcast->openstats()) { // We got the XML, gogogo!.. if ($shoutcast->GetStreamStatus()) { echo "<b>Lyttere:</b> ".$shoutcast->GetCurrentListenersCount()." / ".$shoutcast->GetMaxListenersCount()."<p>"; echo "<tr><td><b>Nå spilles: </b></td><td>".$shoutcast->GetCurrentSongTitle()."</td></tr>\n"; } else { echo "Serveren er oppe, men ingen DJ er på!.."; } } else { // Ohhh, damnit.. echo $shoutcast->geterror(); } ?> Legg denne i samme mappe: <?php /******************************************************************* * shoutcast.class.php * Version: 0.1 * Author: Henrik Malmberg * Copyright (C) 2002, Henrik Malmberg * [email protected] * http://yoda.ih.nu/ * ******************************************************************* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *******************************************************************/ class ShoutCast { // Public var $host; var $port; var $passwd; //Private var $_xml; var $_error; function openstats() { $fp = fsockopen($this->host, $this->port, $errno, $errstr, 10); If (!$fp) { $this->_error = "$errstr ($errno)"; return(0); } else { fputs($fp, "GET /admin.cgi?pass=".$this->passwd."&mode=viewxml HTTP/1.0\r\n"); fputs($fp, "User-Agent: Mozilla\r\n\r\n"); while (!feof($fp)) { $this->_xml .= fgets($fp, 512); } fclose($fp); if (stristr($this->_xml, "HTTP/1.0 200 OK") == true) { // <-H> Thanks to Blaster for this fix.. trim(); $this->_xml = trim(substr($this->_xml, 42)); } else { $this->_error = "Bad login"; return(0); } $xmlparser = xml_parser_create(); if (!xml_parse_into_struct($xmlparser, $this->_xml, $this->_values, $this->_indexes)) { $this->_error = "Unparsable XML"; return(0); } xml_parser_free($xmlparser); return(1); } } function GetCurrentListenersCount() { return($this->_values[$this->_indexes["CURRENTLISTENERS"][0]]["value"]); } function GetPeakListenersCount() { return($this->_values[$this->_indexes["PEAKLISTENERS"][0]]["value"]); } function GetMaxListenersCount() { return($this->_values[$this->_indexes["MAXLISTENERS"][0]]["value"]); } function GetReportedListenersCount() { return($this->_values[$this->_indexes["REPORTEDLISTENERS"][0]]["value"]); } function GetAverageListenTime() { return($this->_values[$this->_indexes["AVERAGETIME"][0]]["value"]); } function GetServerGenre() { return($this->_values[$this->_indexes["SERVERGENRE"][0]]["value"]); } function GetServerURL() { return($this->_values[$this->_indexes["SERVERURL"][0]]["value"]); } function GetServerTitle() { return($this->_values[$this->_indexes["SERVERTITLE"][0]]["value"]); } function GetCurrentSongTitle() { return($this->_values[$this->_indexes["SONGTITLE"][0]]["value"]); } function GetIRC() { return($this->_values[$this->_indexes["IRC"][0]]["value"]); } function GetAIM() { return($this->_values[$this->_indexes["AIM"][0]]["value"]); } function GetICQ() { return($this->_values[$this->_indexes["ICQ"][0]]["value"]); } function GetWebHitsCount() { return($this->_values[$this->_indexes["WEBHITS"][0]]["value"]); } function GetStreamHitsCount() { return($this->_values[$this->_indexes["STREAMHITS"][0]]["value"]); } function GetStreamStatus() { return($this->_values[$this->_indexes["STREAMSTATUS"][0]]["value"]); } function GetBitRate() { return($this->_values[$this->_indexes["BITRATE"][0]]["value"]); } function GetSongHistory() { for($i=1;$i<sizeof($this->_indexes['TITLE']);$i++) { $arrhistory[$i-1] = array( "playedat"=>$this->_values[$this->_indexes['PLAYEDAT'][$i]]['value'], "title"=>$this->_values[$this->_indexes['TITLE'][$i]]['value'] ); } return($arrhistory); } function GetListeners() { for($i=0;$i<sizeof($this->_indexes['USERAGENT']);$i++) { $arrlisteners[$i] = array( "hostname"=>$this->_values[$this->_indexes['HOSTNAME'][$i]]['value'], "useragent"=>$this->_values[$this->_indexes['USERAGENT'][$i]]['value'], "underruns"=>$this->_values[$this->_indexes['UNDERRUNS'][$i]]['value'], "connecttime"=>$this->_values[$this->_indexes['CONNECTTIME'][$i]]['value'], "pointer"=>$this->_values[$this->_indexes['POINTER'][$i]]['value'], "uid"=>$this->_values[$this->_indexes['UID'][$i]]['value'], ); } return($arrlisteners); } function geterror() { return($this->_error); } } ?> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå