Foros del Web » Programando para Internet » PHP »

Problemas con un Array

Estas en el tema de Problemas con un Array en el foro de PHP en Foros del Web. Hola buenas tardes a ver si me pueden ayudar ya que llevo medio día pegándome con este código pero lo logro sacar lo que necesito. ...
  #1 (permalink)  
Antiguo 02/06/2015, 13:18
 
Fecha de Ingreso: enero-2007
Ubicación: Delante de un Pc
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Problemas con un Array

Hola buenas tardes a ver si me pueden ayudar ya que llevo medio día pegándome con este código pero lo logro sacar lo que necesito.

El código es este
Código PHP:
Ver original
  1. $fname= $_GET["valor"];
  2.  
  3.  
  4. function findAllDirs($start) {
  5.     $dirStack=[$start];
  6.     while($dir=array_shift($dirStack)) {
  7.         $ar=glob($dir.'/*',GLOB_ONLYDIR|GLOB_NOSORT);
  8.         if(!$ar) continue;
  9.  
  10.         $dirStack=array_merge($dirStack,$ar);
  11.         foreach($ar as $DIR)
  12.             yield $DIR;
  13.     }
  14. }
  15.  
  16.  
  17. $result=[];
  18. foreach(findAllDirs('D:\xampp\htdocs\www\serverpruebas') as $dir) {
  19.     $match=glob($dir.'/'.$fname,GLOB_NOSORT);
  20.     if(!$match) continue;
  21.  
  22.     $result=array_merge($result,$match);
  23.  
  24. }
  25.  
  26. echo '<pre>';
  27. print_r($result);
  28. echo '</pre>';

Y el resultado es este:

Array
(
[ 0 ] => D:\xampp\htdocs\www\serverprueba\COMMAND.arc
)

Y lo que estoy intentado hacer es esto:

[ 0 ] => Array
(
[name] => COMMAND.arc
[size] => 21160480
[date] => 2015-06-02 16:48:05
)


Espero que me puedan ayudar.

Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 02/06/2015, 13:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con un Array

Necesitas leer los datos del archivo para generar los sub-arrays, ¿ya consulta en el manual de funciones para directorios y archivos? :pensando.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/06/2015, 13:35
 
Fecha de Ingreso: enero-2007
Ubicación: Delante de un Pc
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Problemas con un Array

Despues de de toda la tarde creeme que me visto todo ya, pero me metido en un circulo que todo lo que intento genera error.
  #4 (permalink)  
Antiguo 02/06/2015, 13:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con un Array

Cita:
Despues de de toda la tarde creeme que me visto todo ya, pero me metido en un circulo que todo lo que intento genera error.
Bueno, yo pienso que si no muestras lo que haces jamás sabremos que está mal.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 02/06/2015, 13:51
 
Fecha de Ingreso: enero-2007
Ubicación: Delante de un Pc
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Problemas con un Array

Lo que ando intentando es añadir el tamaño del archivo

"$fname size " . filesize($fname ) . "\n";

y se que tiene que ver con esta parte $result=array_merge($result,$match);

pero no logro juntar esas 2 cosas.
  #6 (permalink)  
Antiguo 02/06/2015, 13:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con un Array

¿Si sabes que glob() devuelve un array o no estás leyendo el manual?

El problema que tienes es que usas el resultado de glob() sin cambios, por eso sólo obtienes rutas de archivos.

Primero debes procesar $match y después ya combinas los resultados.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 02/06/2015, 14:07
 
Fecha de Ingreso: enero-2007
Ubicación: Delante de un Pc
Mensajes: 26
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Problemas con un Array

Ya se que el glob() obtiene un array hasta hay llegue
Array
(
[ 0 ] => D:\xampp\htdocs\www\serverprueba\COMMAND.arc
)

Por eso pedía orientacion en esta parte

if(!$match) continue;

$fsize=filesize($match=glob($dir.'/'.$fname);

$result=array_merge($result,$match,$fsize);
  #8 (permalink)  
Antiguo 02/06/2015, 14:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problemas con un Array

Pues por eso debes leer el manual.

La función filesize() y otras no trabajan con arrays, entonces estás mezclando las cosas.

Debes usar array_map() con una función personalizada para transformar la lista de archivos en el array que necesitas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:26.