• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PHP einzelne Variable auslesen !

cobrastyle

Mitglied
Hy Leute,

Nach langem hab ich wieder mal eine frage an euch profils :)

Hier mein Script :

Code:
<?php
## shoutcast by Pr3mu on ##
$server = "217.172.179.96"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 9375; //hier den port eintragen (ist standard (autom.korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song 
        $shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
        $shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
    }

## output on ##    
echo '<html><title>Shoutcast by Pr3mu</title><body>';
if ($radio_status == 1) {
    echo 'Anzahl der hoerer: ' . $shoutcast_currentlisteners . '
';
    echo 'Gesamtbandbreite: ' . $shoutcast_curbwidth . ' kb/s
';
    echo 'Bitrate: ' . $shoutcast_bitrate .' kb/s 
';
    echo 'Zuhoerer Peak: ' . $shoutcast_peaklisteners . '
';
    echo 'Bandbreite Peak: ' . $shoutcast_peakbwidth . ' kb/s
';
    echo 'Max. moegliche Zuhoerer: ' . $shoutcast_maxlisteners . '
';
    echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< 
';
}    
    else {
        echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
## shoutcast by Pr3mu off ##
?>

Das ist meine datei mit der ich die Streamdaten auslese !
Sie liegt im Verzeichniss /stream/stream.php

Wie kann ich nun in der Index.php zb. die anzahl der höhrer auslesen ?

Lg
 
Trenne den Logik-Teil vom Echo-Teil und mach zwei Dateien draus.
Also so in etwa:

get_shoutcast.php
PHP:
<?php
## shoutcast by Pr3mu on ##
$server = "217.172.179.96"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 9375; //hier den port eintragen (ist standard (autom.korrigiert) 8000)
    $fp = @fsockopen($server, $port, $errno, $errstr, 30);
    
    if ($fp) {
        fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
        while(!feof($fp))
            $page .= fgets($fp, 1000);
        fclose($fp);
        $page = ereg_replace(".*<body>", "", $page);
        $page = ereg_replace("</body>.*", ",", $page);
        $numbers = explode(",", $page);
        $shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
        $connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
        if($connected == 1) {
            $radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
            $wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
        }
        else
            $wordconnected = "no"; //zusaetzliche variable die ich brauchte
        $shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
        $shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
        $shoutcast_reportedlisteners = $numbers[4]; //
        $shoutcast_bitrate = $numbers[5]; //bitrate ;)
        $shoutcast_cursong = $numbers[6]; //aktueller song 
        $shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
        $shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
    }
?>

output_streamstats.php

PHP:
<?php
## output on ##    
echo '<html><title>Shoutcast by Pr3mu</title><body>';
if ($radio_status == 1) {
    echo 'Anzahl der hoerer: ' . $shoutcast_currentlisteners . '
';
    echo 'Gesamtbandbreite: ' . $shoutcast_curbwidth . ' kb/s
';
    echo 'Bitrate: ' . $shoutcast_bitrate .' kb/s 
';
    echo 'Zuhoerer Peak: ' . $shoutcast_peaklisteners . '
';
    echo 'Bandbreite Peak: ' . $shoutcast_peakbwidth . ' kb/s
';
    echo 'Max. moegliche Zuhoerer: ' . $shoutcast_maxlisteners . '
';
    echo 'Aktueller Song: >>' . $shoutcast_cursong . '<< 
';
}    
    else {
        echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
## shoutcast by Pr3mu off ##
?>

Vor der Ausgabe der Echos musst du nun die get_shoutcast.php in deine Seite global includen
PHP:
include("stream/get_shoutcast.php");

die output_streamstats.php includest du anstelle der alten stream.php

Dadurch dass die get_shoutcast.php gloabal in die Seite eingebunden wurde, kannst du dann an beliebiger Stelle deiner Website einzelne Variablen ausgeben lassen.
z.B.
PHP:
echo "<marquee>".$shoutcast_cursong."</marquee>";
für eine laufschrift des aktuellen Titels

//EDIT
An alle Puristen: Bitte nicht hauen wegen dem Marquee. Auch wenn es ein irregulärer tag ist, wird er doch, gerade auf webradiseiten, sehr viel genutzt ;)
 
Zuletzt bearbeitet:
Hab noch ein Problem :(

Wenn ich

Code:
		<div id="streambox">
		
		<!--Streambox-->
		<?php
echo "<marquee>".$shoutcast_cursong."</marquee>";
echo "<marquee>".$shoutcast_bitrate."</marquee>";
echo "<marquee>".$shoutcast_peaklisteners."</marquee>";
?>
		<!--Streambox ende-->
		
		</div>

mache, zeigt er alles an , also alles was er soll, aber es laufen alle durch ?
Sprich alle sind so ne art laufschrift xD
Will aber nur den Cursong als laufschrift haben den rest nicht !


Wie geht das ?
 
Zu Frage 1:
Es hat den Anschein, die Seite fordert den Inhalt per AJAX an. Somit bleibt der "Korpus" der Seite beständig, aber der Informationsteil wird aktualisiert. Auch die "Streambox" bleibt unbeeinflusst und läuft folglich ungestört weiter.
Ob es sowas schon fertig gibt weiß ich nicht.

Zu Frage 2:
Versuche doch einfach 2 der <marquee>-Tags zu entfernen. Ich kann mir vorstellen, dass ein JS innerhalb der Streambox nach diesen Tags sucht und daraus eine Laufschrift macht.
 
HILFE es funktioniert einfach nicht :/

Es wird nichts angezeigt !!!

Datei wo alles angezeigt werden soll
<html>
<head>
</head>
<body>
<?php include("stream/get_shoutcast.php"); ?>



<?php include ("stream/output_streamstats.php"): ?>
<?php
echo "<marquee>".$shoutcast_cursong."</marquee>";
?>
</body>



</html>

get_shoutcast.php

<?php
## shoutcast by Pr3mu on ##
$server = "217.172.179.96"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 9375; //hier den port eintragen (ist standard (autom.korrigiert) 8000)
$fp = @fsockopen($server, $port, $errno, $errstr, 30);

if ($fp) {
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp))
$page .= fgets($fp, 1000);
fclose($fp);
$page = ereg_replace(".*<body>", "", $page);
$page = ereg_replace("</body>.*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
$connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
if($connected == 1) {
$radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
$wordconnected = "yes"; //zusaetzliche variable die ich brauchte ;)
}
else
$wordconnected = "no"; //zusaetzliche variable die ich brauchte
$shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
$shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
$shoutcast_reportedlisteners = $numbers[4]; //
$shoutcast_bitrate = $numbers[5]; //bitrate ;)
$shoutcast_cursong = $numbers[6]; //aktueller song
$shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
$shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
}
?>

output_streamstats.php

<?php
## output on ##
echo '<html><title>Shoutcast by Pr3mu</title><body>';
if ($radio_status == 1) {
echo 'Anzahl der hoerer: ' . $shoutcast_currentlisteners . '
';
echo 'Gesamtbandbreite: ' . $shoutcast_curbwidth . ' kb/s
';
echo 'Bitrate: ' . $shoutcast_bitrate .' kb/s
';
echo 'Zuhoerer Peak: ' . $shoutcast_peaklisteners . '
';
echo 'Bandbreite Peak: ' . $shoutcast_peakbwidth . ' kb/s
';
echo 'Max. moegliche Zuhoerer: ' . $shoutcast_maxlisteners . '
';
echo 'Aktueller Song: >>' . $shoutcast_cursong . '<<
';
}
else {
echo '<h1>Sorry aber das radio ist zur zeit offline!</h1>';
}
echo '</body></html>';
## output off ##
## shoutcast by Pr3mu off ##
?>

Hier unter dem menüpunkt EVENTS sollte sie angezeigt werden !

Stream4ya * Your Favourite Streamsource*
 
Da ist in Sachen HTML-Code einiges im Argen auf der Seite!
Validiere erst mal den Code, damit dort ein taggingfehler als Fehlerquelle ausgeschlossen werden kann.
 
Zurück
Oben