Shoutcast "Playlist" - Nur die letzten 3 ausgeben
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
agent
bearbeiteten code
code
date
datum
falsche login
fehler
folgenden code
forum
history
host
http
kleines problem
letzten drei
mama
port
server
teil
tip
umlaut
-
Hallo Forum!
Ich habe da mal wieder ein kleines Problem:
Ich benutze zur Zeit folgenden Code, um einen Teil der History von Shoutcast wiederzugeben:
<?php $shoutcast = new ShoutCast(); $shoutcast->host = "stream"; $shoutcast->port = "port"; $shoutcast->passwd = "passwort"; class ShoutCast { // Public var $host; var $port; var $passwd; //Private var $_xml; var $_error; function openstats() { $fp = fsockopen($this->host, $this->port, $errno, $errstr, 3); 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) { $this->_xml = trim(substr($this->_xml, 42)); } else { $this->_error = "Falsche Login Daten!!"; return(0); } $xmlparser = xml_parser_create(); if (!xml_parse_into_struct($xmlparser, $this->_xml, $this->_values, $this->_indexes)) { $this->_error = "Ein XML Fehler, bitte lade die Seite erneut"; return(0); } xml_parser_free($xmlparser); return(1); } } function GetStreamStatus() { return($this->_values[$this->_indexes["STREAMSTATUS"][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 geterror() { return($this->_error); } } if ($shoutcast->openstats()) { // // We got the XML, gogogo!.. if ($shoutcast->GetStreamStatus()) { echo "<b><center>Songhistory</b></center><br>\n"; $history = $shoutcast->GetSongHistory(); if (is_array($history)) { for ($i=0;$i<sizeof($history);$i++) { // DER AUSGABETEIL echo date("H:i:s ",$history[$i]['playedat'])." : ".$history[$i]["title"]."<br>\n"; } } else { echo "Keine Songhistory verfügbar..."; } echo "<p>"; } else { echo "Server ist online, aber kein Stream verfügbar"; } } else { // Ohhh, damnit.. echo $shoutcast->geterror(); } ?>
Doch ich möchte nur, dass die letzten 3 ausgegeben werden.
Könnt ihr mir da helfen?
Mit freundlichen Grüßen, l-Websites -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ersetzen durchfor ($i=0;$i<sizeof($history);$i++) {
for ($i=sizeof($history)-3;$i<sizeof($history);$i++) {
-
Hey Super =)
Das funktioniert ja :-)
Kann ich es irgendwie hinbekommen, dass darüber steht: "Die 3 letzten Songs:", das Datum immer Fett ist, und nach jedem Lied ein "<br /> eingefügt wird?
Würde das gehen?
-
Klar!
Das sollte kein Problem sein. Passe einfach deine echo Befehle an:
echo "<h2>Die letzten drei Songs: </h2>\n";
echo "<strong>".date("H:i:s ",$history[$i]['playedat'])."</strong> : ".$history[$i]["title"]."<br />\n";
mfg
la mama - die dir auch im bplaced forum immer hilft. -
Hmm..
Komischerweise finde ich das garnicht in dem Code?
Bin ich gerade ein bisschen blöd, oder ist das ein Fehler?
Edit:
Ah, ich habe es gefunden
Beitrag zuletzt geändert: 4.4.2010 18:57:00 von l-websites -
Hallo,
ich habe jetzt nur den bereits bearbeiteten Code gepostet.
Die original Stellen sind:
echo "<b><center>Songhistory</b></center><br>\n";
und
echo date("H:i:s ",$history[$i]['playedat'])." : ".$history[$i]["title"]."<br>\n";
Findet sich jeweils unter
// // We got the XML, gogogo!..
mfg
la-mama -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage