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

Webradio Playlist Problem

Status
Für weitere Antworten geschlossen.

Timmer

Mitglied
Hi, ich hab ein Problem mit der Playlist von nem Webradio. Zum Testen hab ich mal die IP von einem Webradio, das rund um die Uhr läuft (FearFM) genommen. Hier der Code:

Code:
<?php 

// last10.php -- get and display last n tracks... 
// URL syntax: 
// last10.php?host={XXX.XX.XXX.XX}&port={8000}&n={lastN} 
// 
// {bracketed} items need to be replaced or they will default as below. 
// 
// I can return Javascript or HTML only. 
// 

/* keep warnings from our output */ 
error_reporting(E_ERROR); 

// -- Server Info here -- // 

$yourIP = '85.92.129.232'; 
$yourPORT = '8000'; 

// -- Tweak Display Here -- // 

$bgimage = 'images/content.png'; // Page background color 
$tablew = '100%'; // Table width 
$toprow = 'transparent'; // Top background color 
$bottom = '#ffffff'; // Bottom background color 
$border = '#000000'; // Border color 
$thickness = '0'; // Border thickness 
$padding = '0'; // Cell padding 
$font = 'Arial'; // Font 
$fontsize = '2'; // Font size 

$refresh = '30'; // How often should it refresh? (seconds) 

// Return JavaScript or HTML 
$jsOutput=FALSE; // TRUE=js | FALSE=HTML 

// try to get the target from the url... 
$host = $_REQUEST[host]; 
if (!$host) $host = $yourIP; 
$port = $_REQUEST[port]; 
if (!$port) $port = $yourPORT; 

$lf = chr(10); // 0x0A [\n] 

// The lastN is configurable at the DNAS with, ShowLastSongs= it defaults to 10 and has a maximum of 20 
$t_max = $_REQUEST[n]; 
if (!t_max || $t_max<1 || $t_max>19) $t_max=10; 
//19 is the max here because 20=current_track+19 

// Let's get /index.html first... to keep this short, there is no code to handle the dnas being down 
// or not running, so the script will display nothing in those cases. 

$connect_timeout=5; 
$success=0; 

$fp1 = fsockopen($host, $port, &$errno, &$errstr, $connect_timeout); //open connection 
if(!$fp1) { //if this fails, I'm done.... 
fclose($fp1); 
$success++; 
} else { 
$request="GET /index.html HTTP/1.1\r\nHost:" . $host . ":" . $port . "\r\nUser-Agent: SHOUTcast DNAS Status [index] * (Mozilla/PHP)\r\nConnection: close\r\n\r\n"; //get index.html 
fputs($fp1,$request,strlen($request)); 
$page=''; 
while(!feof($fp1)) { 
$page .= fread($fp1, 16384); 
} 
fclose($fp1); 

// now I have the entire /index.html in $page -- all I want from here is the current track... 
// (hint-hint) 

$song00 = ereg_replace("</b></td>.*", "", ereg_replace(".*Current Song: </font></td><td><font class=default><b>", "", $page)); // easy, right <img src="images/smilies/smile.gif" border="0" alt=""> 

// now let's get /played.html... (this is kinda long) 
$fp = fsockopen($host, $port, &$errno, &$errstr, $connect_timeout); 
if(!$fp) { //if connection could not be made 
fclose($fp); 
$success++; 

} else { 
$request="GET /played.html HTTP/1.1\r\nHost: " . $host . ":" . $port . "\r\nUser-Agent: SHOUTcast DNAS Status [played] * (Mozilla/PHP)\r\n"."Connection: close\r\n\r\n"; 
fputs($fp,$request,strlen($request)); 
$page=''; 
while (!feof($fp)) { 
$page .= fread($fp, 16384); 
} 
fclose($fp); //close connection 
$played_html=$page; 

if ($played_html) { 
$played_html= ereg_replace('<x>','|-|',ereg_replace('</tr>','',ereg_replace('</td><td>','<x>',ereg_replace('<tr><td>','',ereg_replace('</tr>','</tr>' . $lf,ereg_replace('-->','--]',ereg_replace('<!--','[!--',ereg_replace('</table><br><br>.*','',ereg_replace('.*<b>Current Song</b></td></tr>','',$played_html))))))))); 
$xxn=strlen($played_html); 
$r=2; 
$t_count=0; 
$reading=0; 
$track[0]=$song00; 
while ($r<$xxn & $t_count<=$t_max){ 
$cur=substr($played_html,$r,1); 
if ($cur==$lf) $reading=0; 
if ($reading==1) $track[$t_count] .= $cur; 
if ($cur=="|" & substr($played_html,$r-1,1)=="-" & substr($played_html,$r-2,1)=="|") { 
$reading=1; 
$t_count++; 
} 
$r++; 
} 
} 
} 
} 

// I now have $track[0-N] containg the current plus last N tracks... 
// Output time... 

if ($success==0) { 

if ($jsOutput) { // JavaScript - used as <script src=...></script> 
header('Content-type: text/javascript'); 
} else { // HTML... (iFrames anyone?) 
echo '<HTML> 
<HEAD><TITLE>4You FM - Playlist</title> 
<meta **********=********* content="' . $refresh . ';URL=' . $_SERVER['PHP_SELF'] . '?host=' . $host . '&port=' . $port . '">
body {
    font-family:Arial;
    color:#b76300;
    font-size:12px;
}
</head> 
<BODY background=' . $bgimage . '>
<center>'; 
} 

$r=0; 
$output_string=''; 

//tweak the output string (the table init) here.... 
$output_string .= '<table width="' . $tablew . '" border="' . $thickness . '"><tr><td> 
<table width="100%" border="0" cellpadding="' . $padding . '"><tr><td>; //Now playing... 

while ($r<=$t_max){ 
if ($r==0) $output_string .= 'Aktueller Song:<br> <b>'.str_replace("'", "'",str_replace('"', '"',$track[$r])).'</b></td></tr></table></td></tr><tr><td><table width="100%" border="0" cellpadding="' . $padding . '"><tr><td><br><font face=' . $font . ' size=' . $fontsize . '><i>Letzte Songs:</i><br><br>'; 
else $output_string .= str_replace("'", "'",str_replace('"', '"',$track[$r])) . '<br>'; 

$r++; 
} 

// I also want to close the table code now.... 
$output_string .= '</td></tr></table></td></tr></font></td></tr></table>'; 

if ($jsOutput) { 
echo "document.write('" . $output_string . "');"; 
} else { 
echo $output_string . '</body></html>'; 
} 

} else { // I couldn't connect to the DNAS 
if ($jsOutput) echo "document.write('Off Air');"; 
else echo "<HTML> 
<HEAD><TITLE>4You FM - Playlist</title> 
<meta **********=********* content="' . $refresh . ';URL=' . $_SERVER['PHP_SELF'] . '?host=' . $host . '&port=' . $port . '">
body {
    font-family:Arial;
    color:#b76300;
    font-size:12px;
}
</head> 
<BODY background=' . $bgimage . '>
<center>FearFM ist momentan leider <b>offline</b>! Bitte schau sp&auml;ter nochmal vorbei!</center></body></html>"; 

} 
?>

Es kommt immer:

Parse error: syntax error, unexpected T_STRING in /users/timmer/www/4you-fm/playlist3.php on line 140

Was hab ich falsch gemacht?
 
Jetzt kommt diese Fehlermeldung:

Parse error: syntax error, unexpected T_WHILE in /users/timmer/www/4you-fm/playlist3.php on line 139
 
hallo, wenn du dir den code mit SyntaxHighlighting ansiehst, siehst du den Fehler. du hast in $output_string den String hinten nicht geschlossen.

So wäre es richtig:
PHP:
//....
$output_string .= '<table width="' . $tablew . '" border="' . $thickness . '"><tr><td>
<table width="100%" border="0" cellpadding="' . $padding . '"><tr><td>'; //Now playing...
 
while ($r<=$t_max){ 
//... und weiter

Gruss
Fabian
www.weipro.de :: Generatoren :: Downloads :: Forum :: und vieles mehr
 
Doch, das meinte ich. Hatte mich nur gewundert, dass Du das auch geschrieben hattest. Hab Dein mein Post nochmal überprüft, und meinen Schluderfehler entdeckt. Wollte damit nur dokumentieren, dass es sich nicht um einen Wissensfehler handelt ;)

Gruß thuemmy
 
jop. kommt schonmal vor, dass man fehler macht.. ich kenn sowas auch aus diversen Projekten :oops::oops::oops:

Gruss
Fabian
 
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /users/timmer/www/4you-fm/playlist3.php on line 159

Boa, in dem Code wimmelts doch nur so von Fehlern? >_>
 
zeile 159:
so sollte es gehen:

PHP:
<meta **********=********* content='" . $refresh . ';URL=' . $_SERVER['PHP_SELF'] . '?host=' . $host . '&port=' . $port . '">
 
So, jetzt kam noch ein Fehler und den hab ich wegbekommen, aber jetzt kommt das hier:

Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /users/timmer/www/4you-fm/playlist3.php on line 168

Aktueller Code:
Klick

Ich seh den Fehler, aber ich weiß nicht, wie ich ihn wegmachen kann...
 
Also weiß jemand, warum da das Radio immer offline angezeigt wird? Hab die Rights auf 777 gestellt, aber es tut sich immernoch nix...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben