php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 01-03-2007, 23:59
moinmoin666
 Newbie
Links : Onlinestatus : moinmoin666 ist offline
Registriert seit: Mar 2007
Beiträge: 65
moinmoin666 ist zur Zeit noch ein unbeschriebenes Blatt
Standard sc_ ohne includen?

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
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&ouml;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&auml;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&ouml;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 .= "&nbsp;".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\">&nbsp;</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-decorationnone"<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();
}    
    
?>
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?

Geändert von moinmoin666 (02-03-2007 um 15:25 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 02-03-2007, 01:58
tomstig
 Registrierter Benutzer
Links : Onlinestatus : tomstig ist offline
Registriert seit: Jul 2003
Ort: wr n
Beiträge: 878
tomstig ist zur Zeit noch ein unbeschriebenes Blatt
tomstig eine Nachricht über ICQ schicken
Standard

Abgesehen davon, dass ich einen Mega-Horizontalbalken habe:
http://www.php-fehlermeldungen.de/th...ot%20redeclare

Dein Fehler liegt nicht an der Funktion selbst...
Mit Zitat antworten
  #3 (permalink)  
Alt 02-03-2007, 10:45
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Regeln lesen und Code umbrechen bitte. Ich muss über 3 Monitore scrollen....
Mit Zitat antworten
  #4 (permalink)  
Alt 02-03-2007, 11:17
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du scheinst die Deklaration der Klasse zweimal einzubinden. Was natürlich nicht geht (Poste mal den Anfang von shoutcastduke.php)

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 02-03-2007, 15:17
moinmoin666
 Newbie
Links : Onlinestatus : moinmoin666 ist offline
Registriert seit: Mar 2007
Beiträge: 65
moinmoin666 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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)
    {
        
$this->arrOutput[count($this->arrOutput)-2]['children'][] 
$this->arrOutput[count($this->arrOutput)-1];

        
array_pop($this->arrOutput);

    } 
}
jaja, ist mir grad auch klar geworden, aber wie kann ich das denn machen, das es nicht so ist, da komm ich nicht druaf!

Geändert von moinmoin666 (02-03-2007 um 15:26 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 02-03-2007, 15:41
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
jaja, ist mir grad auch klar geworden, aber wie kann ich das denn machen, das es nicht so ist, da komm ich nicht druaf!
Indem du in shoutcastduke.php auf die erneute Deklaration der Klasse verzichtest.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 02-03-2007, 17:59
moinmoin666
 Newbie
Links : Onlinestatus : moinmoin666 ist offline
Registriert seit: Mar 2007
Beiträge: 65
moinmoin666 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

jaein, das Problem ist, das es zwei shoutcast server sind!

dies bedeutet: ich sill nicht die daten von dem einen auch bei der anzeige des anderen, deswegen muss ich das so machen! oder ich hab da waas falsch verstanden!

immoment hab ich es so:

index.php

mit dem require_once("include/shoutcast.php");

dann noch ne extra dukebox.php

mit

PHP-Code:
<?




require_once('include/shoutcastduke.php');


require_once(
'include/all.php');

session_start();

ob_start();

dbconn(false);

loggedinorreturn();

stdhead();
?>
<?

print("<table width=95% class=main border=0 cellspacing=0
 cellpadding=0><tr><td class=embedded>"
);
?>


  <?  
    
if ($GLOBALS["ENABLESHOUTCAST1"]) {
        echo 
"<td valign=\"top\" width=\"100%\"";
        
sc_infobox();
}
?>
 <table cellpadding="5" cellspacing="0" border="1"
 style="width:100%" class="bottom">
 <tr class="bottom" width="100%">
  <td colspan="0" width="100%">
Mit Zitat antworten
  #8 (permalink)  
Alt 03-03-2007, 02:33
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann bennen die Klasse in shoutcastduke.php um ! Bzw schaue zuerst wo du sie zum ersten Mal deklarierst und frage dich ob es wirklich sinnvoll ist in der selben Datei nochmals dieselbe Klasse (auch wenn sie nach der Umbenennung anders heissen mag) deklarieren zu wollen. Wieso zweimal die gleiche Klasse ?

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #9 (permalink)  
Alt 03-03-2007, 11:29
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.084
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bei sowas erzeugt man einfach ein zweites Objekt...
Mit Zitat antworten
  #10 (permalink)  
Alt 03-03-2007, 16:34
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@topicstarter
Kann es sein, dass du new suchst ?
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #11 (permalink)  
Alt 04-03-2007, 19:46
moinmoin666
 Newbie
Links : Onlinestatus : moinmoin666 ist offline
Registriert seit: Mar 2007
Beiträge: 65
moinmoin666 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

immermal danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
Adsman Pro - Werbe-Manager V.1.1.0

Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebigem Format, Textanzeigen und Page-Peels mit umfangreichen Text und Flash-Effekte.

30.07.2019 rhs | Kategorie: PHP/ Bannerverwaltung
HeidiSQL - kostenloses MySQL front-end Editor für Windows ansehen HeidiSQL - kostenloses MySQL front-end Editor für Windows

HeidiSQL - ist ein Windows-Editor für die bekannt open Source Datenbank mySQL

30.07.2019 Berni | Kategorie: MYSQL/ Management
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:00 Uhr.