Php Tracklist Shoutcast est un petit script tout simple qui permet d'afficher le titre en cours ainsi que les derniers titres diffusés sur un serveur Shoutcast.
Source / Exemple :
<?php
error_reporting(E_ERROR);
$ip_serveur = 'xxx.xxx.xxx.xxx';
$port_serveur = 'xxxx';
$url = "http://www.google.com/search?&q=";
$extension = ".mp3";
$date = date("d-m-Y");
$heure = date("H:i:s");
$refresh = '33';
$jsOutput = FALSE;
$host = $_REQUEST[host];
if (!$host) $host = $ip_serveur;
$port = $_REQUEST[port];
if (!$port) $port = $port_serveur;
$lf = chr(10);
$t_max = $_REQUEST[n];
if (!t_max || $t_max<1 || $t_max>19) $t_max=10;
$connect_timeout=5;
$success=0;
$fp1 = fsockopen($host, $port, &$errno, &$errstr, $connect_timeout);
if(!$fp1) {
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";
fputs($fp1,$request,strlen($request));
$page='';
while(!feof($fp1)) {
$page .= fread($fp1, 16384);
}
fclose($fp1);
$song00 = ereg_replace("</b></td>.*", "", ereg_replace(".*Current Song: </font></td><td><font class=default><b>", "", $page));
$fp = fsockopen($host, $port, &$errno, &$errstr, $connect_timeout);
if(!$fp) {
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);
$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++;
}
}
}
}
if ($success==0) {
if ($jsOutput) {
header('Content-type: text/javascript');
} else {
echo '<html>
<head><title>Tracklist - En ce moment : ' . $track[0] . '</title>
<meta http-equiv="refresh" content="' . $refresh . ';URL=' . $_SERVER['PHP_SELF'] . '">
</head>
<body>';
}
$r=0;
$output_string='';
$output_string .= 'Tracklist<br><br><br>';
while ($r<=$t_max){
if ($r==0) $output_string .= '<u>En ce moment</u> :<br><br><strong>'.str_replace("'", "'",str_replace('"', '"',$track[$r])).'</strong><br><a href="' . $url . ' ' . $track[$r] . '' . $extension . '" target="_blank">Télécharger</a><br><br><br><br><u>Derniers titres diffusés</u> :<br><br>';
else $output_string .= str_replace("'", "'",str_replace('"', '"',$track[$r])) . '<br>';
$r++;
}
$output_string .= '';
if ($jsOutput) {
echo "document.write('" . $output_string . "');";
} else {
echo $output_string . '<br><br>' . $heure . ' - ' . $date . '<br><br></body></html>';
}
} else {
if ($jsOutput) echo "document.write('OFF AIR !');";
else echo '<html><head><title>Tracklist indisponible</title>
<meta http-equiv="refresh" content="' . $refresh . ';URL=' . $_SERVER['PHP_SELF'] . '">
<body>Tracklist
<br><br><i>indisponible<br>' . $heure . ' - ' . $date . '</i><br><br></body></html>';
}
?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.