hi leute,
ich hab da mal ne frage*g*
ich habe 3 php dateien:
shoutcast.php, shoutcastduke.php und index.php
hier mein Problem:
es geht darum daten aus einem shoutcast server wieder zu geben,
eigentlich kein großes ding, wenn die shoutcastduke und shoutcast nicht 100% indetisch wären!
Das was ich will:
Das beide onlinestatusse angezeigt werden.
Das nen bissel zu veranschaulichen:
shoutcast.php
so, jetzt hab ich den function sc_infodukeboxklein() in gennant,
und wollte sie jetzt auch per include in die index, aber dann kommt natürlich:
Fatal error: Cannot redeclare class xml2array in
/srv/www/vhosts/xxx.info/httpdocs/include/shoutcastduke.php on line 2
dargestellt, werden sollten sie eigentlich nur mit
sc_infoboxklein();
und
sc_infodukeboxklein();
hab schon alle probiert, und jetzt zu meiner frage: geht das überhaubt?
ich hab da mal ne frage*g*
ich habe 3 php dateien:
shoutcast.php, shoutcastduke.php und index.php
hier mein Problem:
es geht darum daten aus einem shoutcast server wieder zu geben,
eigentlich kein großes ding, wenn die shoutcastduke und shoutcast nicht 100% indetisch wären!
Das was ich will:
Das beide onlinestatusse angezeigt werden.
Das nen bissel zu veranschaulichen:
shoutcast.php
PHP-Code:
<?php
class xml2Array {
var $arrOutput = array();
var $resParser;
var $strXmlData;
function parse($strInputXML)
{
$this->resParser = xml_parser_create ();
xml_set_object($this->resParser, $this);
xml_set_element_handler($this->resParser, "tagOpen"
, "tagClosed");
xml_set_character_data_handler($this->resParser, "tagData");
$this->strXmlData = xml_parse($this->resParser
, $strInputXML);
if (!$this->strXmlData)
{
die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($this->resParser)),
xml_get_current_line_number($this->resParser)));
}
xml_parser_free($this->resParser);
return $this->arrOutput;
}
function tagOpen($parser, $name, $attrs)
{
$tag = array("name" => $name, "attrs" => $attrs);
array_push($this->arrOutput, $tag);
}
function tagData($parser, $tagData)
{
if (trim($tagData)) {
if (isset($this->arrOutput[count($this->arrOutput)-1]['tagData']))
{
$this->arrOutput[count($this->arrOutput)-1]
['tagData'] .
= $tagData;
} else {
$this->arrOutput[count($this->arrOutput)-1]
['tagData'] =
$tagData;
}
}
}
function tagClosed($parser, $name)
{
...................................
.............................................................
..............................das spar ich mir jetzt mal
function sc_infobox()
{
$stats = get_sc_stats();
if ($stats == FALSE)
return;
begin_table(TRUE);
?>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<tr class="bottom">
<td colspan="2"
width="50%" class="bottom">
<a name="radiopls"></a>
<span class="normalfont"><
center><img src="<?=$GLOBALS
["PIC_BASE_URL"]?>radio.png"
width="16" height="16" alt="" s
tyle="vertical-align:
middle;"> <b><?=htmlspecialchars(
$GLOBALS["RADIOTITLE"])?></b>
</center>
</span></td>
</tr>
<tr>
<td class="bottom"
align="center"><span class="normalfont">
<center><img src="<?=$GLOBALS["PIC_BASE_URL"]?>
radiolisten.png"
width="16" height="16" alt="" style="
vertical-align: middle;"> <a href="http://<?=$GLOBALS
["SC_HOSTNAME"] . ":" .
$GLOBALS["SC_PORT"]?>/listen.pls">
Stream anhören</a></center></span>
</td>
<td class="bottom" align="center">
<span class="normalfont"><center>
<img src="<?=$GLOBALS["PIC_BASE_URL"]?>
radioplaylist.png" width="16"
height="16" alt="" style="vertical-align: middle;">
<a href="#radiopls" onclick="var
myDiv=document.getElementById('playlist');myDiv.style.display=
'block';">Letzte 10 Songs anzeigen</a></center></span></td>
</tr>
<tr>
<td class="bottom" style="vertical-align:top;text-align:left;"
colspan="2">
<center><?php
if ($stats["streamstatus"] == 1) {
echo "<center><table><tr><td valign=\"middle\">
<img src=\"" . $GLOBALS["PIC_BASE_URL"] . "button_online2.gif\"
width=\"15\" height=\"15\" alt=\"Online\" style=\"vertical-align:
middle;\"></td>";
echo "<td valign=\"middle\"
style=\"font-size:120%;font-weight:bold;\">
On Air</td>";
echo "<td valign=\"middle\"><img src=\"" .
$GLOBALS["PIC_BASE_URL"] . "button_online2.gif\" width=\"15\"
height=\"15\" alt=\"Online\" style=\"vertical-align:
middle;\"></td></tr></table></center>";
echo "<br><table><tr><td valign=\"top\"><img src=\"" .
$GLOBALS["PIC_BASE_URL"] . "
viewmag16.png\" width=\"16\" height=\"16\" alt=\"\"
style=\"vertical-align:
middle;\"></td>";
echo "<td valign=\"top\"><b><center>"
. htmlspecialchars($stats["servertitle"]) . "
</center></b><br><br>";
printf("Aktuell <b>%d</b> Zuhörer von maximal
<b>%d</b> möglichen, der Rekord liegt bei <b>%d</b>", $stats["currentlisteners"],
$stats
["maxlisteners"], $stats["peaklisteners"]);
?>
</center>
<br><br><center><b>
Momentan läuft:</b></center><br>
<center><table>
<tr>
<td valign="middle"><img
src="<?=$GLOBALS["PIC_BASE_URL"]?>song.png" width="16"
height="16" alt=""></td>
<td
style="vertical-align:middle;text-align:left;">
<?=htmlspecialchars($stats["songtitle"])?> @<?=$stats["bitrate"]
?> kbps</td>
</tr>
</table>
</center>
<br><center><b>U
nsere Zuhörer von der Seite:</b></center><br>
<center><?php
// Zuhörer
$ipaddrs = array();
for ($I=0; $I < count($stats[
"listeners"]); $I++) {
$ip = gethostbyname($stats
["listeners"]
[$I]["hostname"]);
$ipaddrs[] = sqlesc($ip);
}
$res = mysql_query("SELECT DISTINCT(`ip`),`id`,`username`,`class`,
`donor`,`
warned`,`added`,`enabled` FROM `
users` WHERE `ip` IN (".implode(",", $ipaddrs).") GROUP BY `ip` ORDER BY `class` DESC,`username`
ASC");
$activeusers = "";
while (@$arr = mysql_fetch_assoc
($res))
{
if ($activeusers) $activeusers .= "
,\n";
//$arr["username"] = "<font class=".get_class_color($arr["class"]).">" .
$arr["username"] . "</font>";
$activeusers .= "<a href=userdetails
.php?id=" . $arr["id"] . "><b>" . $arr["username"] . "</b></a>";
$activeusers .= " ".get_user_i
cons($arr);
}
if ($activeusers != "")
{
echo $activeusers;
} else {
echo ('<center>Akt
uell sind keine
Tracker-Mitglieder unter den
Zuhörern.</center>');
}
?>
</center>
</td></tr></table>
<?php
} else {
echo "<center><table><tr><t
d valign=\"middle\"><img src=\"" . $GLOBALS["PIC_BASE_URL"]
. "button_offline2.gif\" width=\"15\" height=\"15\
" alt=\"\"></td><td valign=\"middle\"
style=\"font-size:120%;font-weight:bold;
">Offline</td><td valign=\"middle\"><img src=\""
. $GLOBALS["PIC_BASE_URL"] . "button_offline2.gif\" width=\"15\"
height=\"15\" alt=\"\"></td></tr></table></center>";
}
?>
<div id="playlist" style="display:none;width:100%;"><br>
<?php
begin_table(TRUE);
echo "<center><tr><td class=\"bottom\"> </td><td class=\"bottom\"><b>Zeit</b></td><td
class=\"bottom\"><b>Song</b></td></tr></center>";
for ($I = 0; $I < count($stats["songhistory"]); $I++) {
echo "<tr><td class=\"bottom\"
style=\"vertical-aling:middle;text-a
lign:center;\"><img src=\"" . $GLOBALS["PIC_BASE_URL"] .
"song.png\" width=\"16\" height=\"16\" alt=\"\"></td>";
ap=\"nowrap\">" . date("d.n.Y, G:i:s", $stats["songhistory"][$
I]["playedat"]) . "</td>";
echo "<td class=\"bo
ttom\" width=\"100%\">" . htmlspecialchars($stats["songhistory"][$I]["t
itle"]) . "</td></tr>\n";
}
end_table();
?>
</div>
</td>
</tr>
<?php
end_table();
}
function sc_infoboxklein()
{
$stats = get_sc_stats();
if ($stats == FALSE)
return;
begin_table(TRUE);
?>
<colgroup>
<col width="50%" />
<col width="50%" />
</colgroup>
<tr class="bottom">
<td colspan="2" width="5
0%" class="bottom">
<center><?php
if ($stats["streamstatus"] == 1)
{
echo "<center><table><
tr><td valign=\"middle\"><img src=\"" .
$GLOBALS["PIC_BASE_URL"]
. "button_online2.gif\" width=\"15\" height=\"15\" alt=\"Online\"
style=\"vertical-align: middle
;\"></td>";
echo "<td valign=\"middle\" style=\"font-size:120%;fon
t-weight:bold;\"><a href=\"http://85.214.54.57:
8050/listen.pls\"style=\
"text-decoration: none\"<font
color=#00FF00>"
.
htmlspecialchars($stats["servertitle"]) . " On Air</font>
</a>
</td>";
echo "<td valign
=\"middle\"><img src=\"" . $GLOBALS["PIC_BASE_URL"] .
"button_online2.gif\
" width=\"15\" height=\"15\" alt=\"Online\" style=\"vertical-align:
middle;\"></td></tr></table></center>";
} else {
echo "<center
><table><tr><td valign=\"middle\">
<img src=\"" . $GLOBALS["PIC_BASE_URL"] . "button_offline2.gif\"
width=\"15\" height=\"15\" alt=\"\">
</td>
<td valign=\"middle\" style=\"font-size:120
%
;font-weight:bold;\">KaW Radio Offline</td>
<td valign=\"middle\"><img src=\"" .
$GLOBALS["PIC_BASE_URL"] .
"button_offline2.gif\" width=\"15\" height=\"15\"
alt=\"\"></td></tr></table></center>";
}
end_table();
}
?>
und wollte sie jetzt auch per include in die index, aber dann kommt natürlich:
Fatal error: Cannot redeclare class xml2array in
/srv/www/vhosts/xxx.info/httpdocs/include/shoutcastduke.php on line 2
dargestellt, werden sollten sie eigentlich nur mit
sc_infoboxklein();
und
sc_infodukeboxklein();
hab schon alle probiert, und jetzt zu meiner frage: geht das überhaubt?
Kommentar