Space Vampire
Senior HTML'ler
mahlzeit
ich schon wieder.
wir haben auf unserer radio-page (ich bin nicht der webmaster und werd den teufel tun und mich dafür anbieten *lol*) ein kleines problem mit umlauten.
was die ganze page betrifft überlasse ich das auch dem webmaster sich irgendwann mal drum zu kümmern wenn es ihm endlich mal genehm ist :|
aber ich glaube, dass man das bei den streamstats auch mittels php angehen kann.
ich häte gerne, falls möglich, dass von schautcast ausgelesene titel automatisch gecleaned werden, und zwar so, dass aus "ä" ein "ae" und so weiter wird.
für die stream stats und das titelupdate in der streambox benutze ich dieses script.
kann mir da jemand weiterhelfen?
weniger dringlich aber auch noch interessant wäre ein kleiner zusätzlicher sicherheitsanker in der ausgabe, falls der server nicht nur offline geschaltet, sondern unnerreichbar ist.
in dem fall soll nämlich nach möglichkeit ebenfalls dei "offline"-grafik angezeigt werden statt des fehlercodes.
danke im voraus...
ganz vergessen.
falls notwendig, hier die dazugehörige classes.php
ok ich hab einen lösungsansatz.
mit str_replace hab ich folgendes funktionierend versucht
aber wie kann ich im selben befehl mehrere umlaute unterbringen?
wenn ich den selben befehl mehrfach untereinanderschaufele bekomme ich auch mehrfache ausgaben und funktioniert auch nicht.
das lässt sich doch bestimmt als ein einziger befehl verschachteln oder?
ich schon wieder.
wir haben auf unserer radio-page (ich bin nicht der webmaster und werd den teufel tun und mich dafür anbieten *lol*) ein kleines problem mit umlauten.
was die ganze page betrifft überlasse ich das auch dem webmaster sich irgendwann mal drum zu kümmern wenn es ihm endlich mal genehm ist :|
aber ich glaube, dass man das bei den streamstats auch mittels php angehen kann.
ich häte gerne, falls möglich, dass von schautcast ausgelesene titel automatisch gecleaned werden, und zwar so, dass aus "ä" ein "ae" und so weiter wird.
für die stream stats und das titelupdate in der streambox benutze ich dieses script.
kann mir da jemand weiterhelfen?
PHP:
<?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 = "+++++";
$shoutcast->port = "+++++";
$shoutcast->passwd = "++++++";
if ($shoutcast->openstats()) {
// We got the XML, gogogo!..
if ($shoutcast->GetStreamStatus()) {
echo "<b>Titel: </b><br>".$shoutcast->GetCurrentSongTitle()."\n";
echo "<br><br><b>Moderator: </b><br>".$shoutcast->GetAIM()."\n";
} else {
echo "<img src='offline.gif'>";
}
} else {
// Ohhh, damnit..
echo $shoutcast->geterror();
}
?>
weniger dringlich aber auch noch interessant wäre ein kleiner zusätzlicher sicherheitsanker in der ausgabe, falls der server nicht nur offline geschaltet, sondern unnerreichbar ist.
in dem fall soll nämlich nach möglichkeit ebenfalls dei "offline"-grafik angezeigt werden statt des fehlercodes.
danke im voraus...

ganz vergessen.
falls notwendig, hier die dazugehörige classes.php
PHP:
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 = "<img src='offline.gif'>";
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); }
}
?>
ok ich hab einen lösungsansatz.
mit str_replace hab ich folgendes funktionierend versucht
PHP:
echo "<font class='title'><b><hr>Zuletzt gespielte Titel:<hr></b></font>\n";
$history = $shoutcast->GetSongHistory();
if (is_array($history)) {
for ($i=0;$i<sizeof($history);$i++) {
echo "<font class='normalfont'>",$history[$i]["title"] =
str_replace("Ü", "UE", $history[$i]["title"]).
"</font><br>\n";
wenn ich den selben befehl mehrfach untereinanderschaufele bekomme ich auch mehrfache ausgaben und funktioniert auch nicht.
das lässt sich doch bestimmt als ein einziger befehl verschachteln oder?
Zuletzt bearbeitet von einem Moderator: