hallo,
ich habe einen shoutcastplayer geschrieben der auch bestens funtioniert. nun soll dieser player aber eine von php erstellte datei einlesen - da aber php in der regel asci schreibt und flash php erwartet habe ich da ein problem sobald ein titel gesendet wird, der sonderzeichen etc enthält.
jetzt muss also entweder auf der seite von flash der kram der probleme macjht einfach ignoriert werden oder aber von php in utf8 geschrieben werden. hier also das php script- da ich denke das letzteres einfacher ist... (der teil der probleme macht bzw für das schreiben zuständig ist habe ich markiert damit ihr nicht suchen müsst ;)) :
PHP
<?php
// Serverdaten
$scast_host = 'ya-radio.de';
$scast_name = 'xxx';
$scast_port = 'xxx';
$scast_pass = xxx';
// XML holen
if($fp = @fsockopen($scast_host, $scast_port, $errno, $errstr, 30)) {
if(fputs($fp, "GET /admin.cgi?pass=".$scast_pass."&mode=viewxml HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n")) {
$xmldata = "";
while(!feof($fp)) $xmldata .= fgets($fp, 1000);
$xmldata = explode("\r\n", $xmldata);
$xmldata = $xmldata[3];
}
}
// Regex Funktionen
function get_item($name, $source) {
preg_match('#<'.$name.'>(.*?)</'.$name.'>#', $source, $matches);
return $matches[1];
}
function get_items($name, $source) {
preg_match_all('#<'.$name.'>(.*?)</'.$name.'>#', $source, $matches);
return $matches[1];
}
// Werte aus XML auslesen
$sc_stream_status = get_item("STREAMSTATUS", $xmldata);
if($sc_stream_status) {
$sc_stream_bitrate = get_item("BITRATE", $xmldata);
$sc_listeners_cur = get_item("CURRENTLISTENERS", $xmldata);
$sc_listeners_peak = get_item("PEAKLISTENERS", $xmldata);
$sc_listeners_max = get_item("MAXLISTENERS", $xmldata);
$sc_server_title = get_item("SERVERTITLE", $xmldata);
$sc_server_url = get_item("SERVERURL", $xmldata);
$sc_server_genre = get_item("SERVERGENRE", $xmldata);
$sc_server_version = get_item("VERSION", $xmldata);
$sc_current_song = get_item("SONGTITLE", $xmldata);
$sc_irc = get_item("IRC", $xmldata);
$sc_icq = get_item("ICQ", $xmldata);
$sc_aim = get_item("AIM", $xmldata);
}
if(!($sc_stream_bitrate)) {
echo "text1=Sorry, the Radio is OFFline at time!" . "\n";
}
else {
// Das ist der Teil der Probleme bereitet
// Das ist der Teil der Probleme bereitet
// Das ist der Teil der Probleme bereitet
$text = "text1=|Sendung: $sc_server_title | Bitrate: $sc_stream_bitrate | Titel: $sc_current_song | Genre: $sc_server_genre| Kontakt ICQ: $sc_icq | Forum: [url]www.jtpc.de[/url] |" . "\n"; // Dateiinhalt
$dateiname = "songinfos.utx"; // Name der Datei
fclose(fopen("songinfos.utx","w"));
$handler = fOpen($dateiname , "a+" ); // Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
fWrite($handler , $text); // Dateiinhalt in die Datei schreiben
fClose($handler); // Datei schließen
// Probleme Ende
// Probleme Ende
// Probleme Ende
echo "text1=|Sendung: $sc_server_title | Bitrate: $sc_stream_bitrate | Titel: $sc_current_song | Genre: $sc_server_genre| Kontakt ICQ: $sc_icq | Forum: [url]www.jtpc.de[/url] |" . "\n";
}
?>
Alles anzeigen
[/code]