Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: itzg3 en 11 Mayo 2014, 07:06 am



Título: Array no me encuenta el archivo
Publicado por: itzg3 en 11 Mayo 2014, 07:06 am
Estoy usando una libreria ( getid3() ).

Código
  1. include('demo.audioinfo.class.php');
  2. $getID3 = new getID3;
  3. $list = fopen('F:\alternative/lista.txt','r');//lista de nombres de archivos mp3.
  4.  
  5. while(!feof($list)){
  6.  
  7. $line = fgets($list);
  8. $info = $getID3->analyze('F:\alternative/'.$line);
  9. var_dump($info);
  10. //$duracion = $info['playtime_string'];
  11. //echo $duracion."<br>";
  12.  
  13. }

El var_dump me arroja esto:

Citar
array (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?


Título: Re: Array no me encuenta el archivo
Publicado por: Jenny T-Type en 11 Mayo 2014, 12:35 pm
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
  1. $list = fopen('F:\\alternative\\lista.txt','r');//lista de nombres de archivos mp3.


Esto fue lo que consegui:
Código
  1. require_once("../getid3/getid3.php"); //en mi caso es asi ;)
  2. $getid3 = new getID3;
  3. /* FAILED
  4. $list = fopen('lista_archivos', 'r');
  5. while(!feof($list)){
  6.  
  7. $line = fgets($list);
  8. $info = $getid3->analyze('carpeta_de_musica/'.$line);
  9. var_dump($info);
  10. }
  11. */
  12. $carpeta = scandir("carpeta_de_musica"); //Carpeta donde guardas los archivos MP3
  13. $ignorar = array(".",".."); //Archivos y directorios a ignorar, debes añadir todo archivo que no sea multimedia que se encuentre en dicho directorio.
  14. $archivos = array_diff($carpeta, $ignorar); //Quitamos los archivos  que no sean multimedia y los directorios
  15.  
  16. foreach($archivos as $archivo) {
  17. $info = $getid3->analyze("carpeta_de_musica/".$archivo);
  18. var_dump($info);
  19. }
  20.  

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 ;)