PHP einzelne Variable auslesen !

Hy Leute,

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

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 ‚Shoutcast by Pr3mu‘;
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 ‚

Sorry aber das radio ist zur zeit offline!

‘;
}
echo ‚‘;

output off

shoutcast by Pr3mu off

?>[/CODE]

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
}

?>
[/PHP]

output_streamstats.php

[PHP]<?php

output on

echo ‚Shoutcast by Pr3mu‘;
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 ‚

Sorry aber das radio ist zur zeit offline!

‘;
}
echo ‚‘;

output off

shoutcast by Pr3mu off

?>[/PHP]

Vor der Ausgabe der Echos musst du nun die get_shoutcast.php in deine Seite global includen
[php]include(„stream/get_shoutcast.php“);[/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 „“.$shoutcast_cursong.„“;[/PHP]
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 :wink:

Danke,

Funktioniert einfach super :slight_smile:

Eine frage noch !

Gibt es so eine „streambox“ schon irgendwo fertig ?

KRONEHIT Wir sind die meiste Musik
Sie soll sich automatisch abspielen und wenn ich auf einen link klicke in der navi, muss sie weiter spielen xD
Stell ich mir schwer vor …
Ist die mit flash gemacht ? Javascript & php ?

Lg

Hab noch ein Problem :frowning:

Wenn ich

[CODE]

	<!--Streambox-->
	<?php

echo „“.$shoutcast_cursong.„“;
echo „“.$shoutcast_bitrate.„“;
echo „“.$shoutcast_peaklisteners.„“;
?>

	</div>[/CODE]

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 -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 :confused:

Es wird nichts angezeigt !!!

Datei wo alles angezeigt werden soll

<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 ‚Shoutcast by Pr3mu‘;
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 ‚

Sorry aber das radio ist zur zeit offline!

‘;
}
echo ‚‘;

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.

[Valid] Markup Validation of http://www.ml-cms.at/new/test/ - W3C Markup Validator

Zufrieden :slight_smile:

Dennoch wird unter events garnichts angezeigt !