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









4.33
(3 votos)
No ha realizado ningún comentario
Valora esta solución
<?
session_register("ruta");
echo"<form name=form2 method=post action=pijada.php?modo=nueva_ruta><a class=baby12>Carpeta a explorar</a> <input name=definir_ruta type=text id=definir_ruta value=c:/ size=50><input name=enviar type=submit id=enviar value=Buscar></form>";
//definimos rutas
$ruta_winamp = "c:\archiv~1\winamp\winamp.exe";
//modo normal nos muestra los ficheros mp3
if($_GET[modo] == ''){
//llamamos a la funcion buscar mp3 q nos localiza los mp3 contenidos en una carpeta y sus subcarpetas
if($_SESSION[ruta] == ''){
echo"<a class=baby12>Introduce una ruta para buscar mp3</a>";
}else{
$ruta = $_SESSION[ruta];
echo "<a class=baby12>Mp3 encontrados en $ruta</a><br>";
buscar_mp3($ruta);
if(count($a["total"]) != 0){
//ordenamos el resultado
//sort($a);
//y mostramos lista de canciones con sus checkbox para seleccionar las q reproduciremos
echo"<form action=pijada.php?modo=play method=post>";
echo"<a class=baby12>Seleccionar archivos a reproducir</a> <input type=submit name=play value=Play><br><br>";
for($ii=0;$ii<=count($a["total"])-1;$ii++){
$ruta_total = $a["total"][$ii];
$nombre = $a["nombre_fichero"][$ii];
$artista = $a["$artist_fichero"][$ii];
echo "<input name=check_play[$ii] type=checkbox value=\"$ruta_total\"><img src=winamp.gif width=15 height=15 border=0 title=\"$artista - $nombre \"> <a class=baby12>$artista - $nombre.mp3</a><br>";
}
echo"<br><a class=baby12>Seleccionar archivos a reproducir</a> <input type=submit name=play value=Play>";
echo"</form>";
echo "<a class=baby12>Total: ".count($a["total"]).'</a>';
}else{
echo "<br><a class=baby12>No se encontraron archivos mp3 en este directorio ni en sus subdirectorios</a>";
}
}
}
//definimos nueva ruta para buscar mas mp3s
else if ($_GET[modo] == 'nueva_ruta'){
if($_SESSION[ruta] == ''){
$_SESSION[ruta] = $definir_ruta;
echo"<META HTTP-EQUIV=\"refresh\" content=\"1; URL=pijada.php?modo=\">";
}else{
$_SESSION["ruta"] = $_POST["definir_ruta"];
echo"<META HTTP-EQUIV=\"refresh\" content=\"1; URL=pijada.php?modo=\">";
}
}
//lanzamos reproductor y creamos playlist
else if ($_GET[modo] == 'play'){
$f1=fopen("playlist.m3u","w+");
for($aa=0;$aa<=72;$aa++){
if($check_play[$aa] != ''){
fwrite($f1,$check_play[$aa]."\n");
}
}
fclose($f1);
system("$ruta_winamp playlist.m3u");
echo"<META HTTP-EQUIV=\"refresh\" content=\"1; URL=pijada.php?modo=\">";
}
function buscar_mp3($ruta){
$f = opendir($ruta);//abrimos el directorio asignado
while($fichero = readdir($f)){
$ruta_y_fichero = $ruta."/".$fichero;
if(($fichero != '.') AND ($fichero != '..')){//nos saltamos los directorio . y ..
if(is_dir($ruta_y_fichero)){//si el fichero analizado es una carpeta seguiremos buscando mas mp3s
buscar_mp3($ruta_y_fichero);
}else{
$extension = substr($ruta_y_fichero , -3, 3);//obtenemos la extension
$extension = strtolower($extension);//bajamos a minus para q piyen todos
if($extension == 'mp3'){
if(count($a) == 0){
saca_id3($ruta_y_fichero);
}else{
saca_id3($ruta_y_fichero);
}
}
}
}
}
closedir($f);
}
function saca_id3($ruta_y_fichero){//obtenemos los id3 leyendo los ultimos 128 bytes del fichero mp3
$f1=fopen($ruta_y_fichero,"r");
$tamaño = filesize($ruta_y_fichero);//obtenemos total bytes
$lee_hasta_aki = $tamaño-128;//le restamos al total 128 q necesitamos
fseek($f1,$lee_hasta_aki);//nos istuamos en el primer de los 128 ultimos bytes
$id3=fread($f1,128);//obtenemos id3 completo
fclose($f1);
//miramos is el array contiene valores y definimos $a como global para poder acceder a ella
if(count($a) == 0){
global $a;
}
//separamos id3 por nombre y artista
$a["total"][] = $ruta_y_fichero;
$a["nombre_fichero"][] = substr($id3,3,29);
$a["$artist_fichero"][] = substr($id3,33,29);
}
?>