Array no me encuenta el archivo

Iniciado por itzg3, 11 Mayo 2014, 07:06 AM

0 Miembros y 1 Visitante están viendo este tema.

itzg3

Estoy usando una libreria ( getid3() ).

Código (php) [Seleccionar]
include('demo.audioinfo.class.php');
$getID3 = new getID3;
$list = fopen('F:\alternative/lista.txt','r');//lista de nombres de archivos mp3.

while(!feof($list)){

$line = fgets($list);
$info = $getID3->analyze('F:\alternative/'.$line);
var_dump($info);
//$duracion = $info['playtime_string'];
//echo $duracion."<br>";

}


El var_dump me arroja esto:

Citararray (size=2)
  'GETID3_VERSION' => string '1.9.7-20130705' (length=14)
  'error' =>
    array (size=1)
      0 => string 'Could not open "F:\alternative\Down - Better.mp3
" (does not exist, or is not a file)' (length=112)


Si comento el while y en la variable info , en analyze() le cambio el $line por Down - Better.mp3 funciona.
¿Que puede estar pasando?

Jenny T-Type

#1
EDIT: Ahora que pude compilar PHP con mis maniaticas extensiones, pude probar tu codigo.

insisto en que es mejor usar solo un tipo de separador, y en el caso de usar el separador de windows:
Código (php) [Seleccionar]
$list = fopen('F:\\alternative\\lista.txt','r');//lista de nombres de archivos mp3.

Esto fue lo que consegui:
Código (php) [Seleccionar]

require_once("../getid3/getid3.php"); //en mi caso es asi ;)
$getid3 = new getID3;
/* FAILED
$list = fopen('lista_archivos', 'r');
while(!feof($list)){

$line = fgets($list);
$info = $getid3->analyze('carpeta_de_musica/'.$line);
var_dump($info);
}
*/
$carpeta = scandir("carpeta_de_musica"); //Carpeta donde guardas los archivos MP3
$ignorar = array(".",".."); //Archivos y directorios a ignorar, debes añadir todo archivo que no sea multimedia que se encuentre en dicho directorio.
$archivos = array_diff($carpeta, $ignorar); //Quitamos los archivos  que no sean multimedia y los directorios

foreach($archivos as $archivo) {
$info = $getid3->analyze("carpeta_de_musica/".$archivo);
var_dump($info);
}


usando scandir() nos evitamos tener que leer que crear un archivo que lista los arhivos a evaluar.
además nos aseguramos que el array solo tiene los nombres de archivo y no el valor FALSE que devuelve fgets() cuando ya no encuentra nada mas que leer.

Espero que te sirva ;)