Desafío PPT Playlist
#3 Solución de crazy2k
Ver código
|
Ver comentarios (7)
|
Descargar código
Fecha: 20 diciembre 2003
Tamaño: 22650 caracteres
Comentarios: 7
Solución online:
Lo siento, pero no está disponible
Valoración









8.33
(3 votos)
No ha realizado ningún comentario
Valora esta solución
<?
$page = ($_GET['page']) ? $_GET['page'] : $_POST['page'];
//Directorio de MP3
$dir_name = "c:/boca/";
//Ubicación del reproductor de MP3
$rep="c:\archiv~1\Winamp\winamp.exe";
session_start();
$PHP_SELF = $_SERVER['PHP_SELF'];
//Switch utilizado para verificar la página a la que se desea ir
switch ($page) {
default:
$num = 1;
$arr = array();
echo "<table cellpadding=\"3\">";
//Utilizamos la función explicada más abajo
makeArr($dir_name);
$_SESSION['arr'] = $arr;
$p = 1;
//Ordenamos el array según el key
uksort($arr,"strnatcasecmp");
//Recorremos el array y mostramos su contenido en una tabla
foreach ($arr AS $z => $j) {
if ($bgcol) { $bgcol = 0; $bgcolor = FFFFFF; }
else { $bgcol = 1; $bgcolor = F0F5FF; }
echo "<tr bgcolor=\"#$bgcolor\"><td><p align=\"right\"><b>$p.</b></p></td><td><a href=\"$PHP_SELF?page=1&f=".$j['numero']."\">$z</a></td><td><i>".$j['size']." MB</i></td><td><a href=\"$PHP_SELF?page=2&f=".$j['numero']."\">Agregar a la lista</a></td><td><a href=\"$PHP_SELF?page=3&f=".$j['numero']."\">Ver ID3</a></td></tr>";
$p++;
}
echo "</table>";
break;
case "1":
$arr = $_SESSION['arr'];
$f = $_GET['f'];
//Utilizamos la función explicada más abajo
$a = giveUbicacion($f);
$do = $rep." ".$a;
//Reproducción
system($do);
break;
case "2":
$arr = $_SESSION['arr'];
$f = $_GET['f'];
$a = giveUbicacion($f);
echo $a;
$do = $rep." /ADD ".$a;
//Agregamos a la lista
system($do);
break;
case "3":
$arr = $_SESSION['arr'];
$f = $_GET['f'];
$a = giveUbicacion($f);
$h = fopen($a,"r");
$seek = fseek($h,filesize($a)-125);
$s = fread($h,131);
echo "<table width=\"100%\"><tr><td bgcolor=\"#F0F5FF\" colspan=\"2\">Información de <b>$a</b>:</td></tr>";
echo "<tr><td><table><tr><td><b>Artista:</b></td><td>".substr($s,30,30)."</td></tr>";
echo "<tr><td><b>Título:</b></td><td>".substr($s,0,30)."</td></tr>";
echo "<tr><td><b>Album:</b></td><td>".substr($s,60,30)."</td></tr></table></td></tr></table>";
echo "<br><b>NOTA:</b> Si la información no es entendible, es porque el archivo no contiene TAGs ID3.";
fclose($h);
echo "<br><br><a href=\"$PHP_SELF\">Volver atrás</a>";
break;
}
//Función que recorre el array en busca del numero (o id) de cada archivo
//y devuelve la ubicación del numero (o id) buscado
//giveUbicacion(numero_a_buscar);
function giveUbicacion($numero) {
$arr = $_SESSION['arr'];
foreach($arr as $g) if ($g['numero'] == $numero) return $g['ubicacion'];
}
//Función que busca los archivos y los guarda en un array
//makeArr(directorio);
function makeArr($d) {
global $arr;
global $num;
if ($dir = opendir($d)) {
while ($file_name = readdir($dir)) {
$var = (strlen($file_name)) - 3;
$var2 = strlen($file_name);
$var3 = (strlen($d)) - 1;
$var4 = strlen($d);
if (($file_name != ".") && ($file_name != "..") && (is_dir($d.$file_name))) {
//Buscamos en subdirectorios
makeArr($d.$file_name);
}
elseif (($file_name != ".") && ($file_name != "..") && (strtolower((substr($file_name,$var,$var2))) == 'mp3')) {
if (((substr($d,$var3,$var4)) != '/')) $d = $d."/";
$x = $d.$file_name;
$fsize = filesize($x);
$fsize = str_replace(".",",",round(($fsize / 1024) / 1024,2));
//Agregamos los datos al array
$arr[$file_name] = array(
"size" => $fsize,
"ubicacion" => $x,
"numero" => $num,
);
$num++;
}
}
closedir($dir);
}
}
?>