Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: DeXon18 en 2 Junio 2015, 19:09 pm



Título: [Resuelto] Problemas con un Array
Publicado por: DeXon18 en 2 Junio 2015, 19:09 pm
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
  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


Título: Re: Problemas con un Array
Publicado por: #!drvy en 3 Junio 2015, 20:20 pm
Te recomiendo que uses DirectoryIterator (http://php.net/manual/es/class.directoryiterator.php) y en este caso su modo recursivo (http://php.net/manual/es/class.recursivedirectoryiterator.php).

Un ejemplo de lo que pides:

Código
  1. <?php
  2.  
  3. $buscar = $_GET['valor'];
  4. $result = array();
  5.  
  6. $dir = new RecursiveDirectoryIterator('D:\xampp\htdocs\www\serverpruebas');
  7. foreach(new RecursiveIteratorIterator($dir) as $archivo){
  8.  
  9.    // Si no es un archivo, lo saltamos.
  10.    if(!$archivo->isFile()){ continue; }
  11.  
  12.    $datos = array();
  13.    $datos['name'] = $archivo->getFilename();
  14.  
  15.    // Si el nombre no coincide, saltar.
  16.    if($datos['name'] !== $buscar){ unset($datos); continue; }
  17.  
  18.    $datos['size'] = $archivo->getSize();
  19.    $datos['date'] = date('Y-m-d H:i:s', $archivo->getMTime());
  20.  
  21.    $result[] = $datos; unset($datos);
  22. }
  23.  
  24. echo '<pre>';
  25. print_r($result);


Resultado:

Código:
Array
(
    [0] => Array
        (
            [name] => crunch.png
            [size] => 1737
            [date] => 2009-02-06 18:48:08
        )
)

Saludos


Título: Re: Problemas con un Array
Publicado por: DeXon18 en 3 Junio 2015, 20:22 pm
Gracias #!drvy, no veas que dolor de cabeza me estaba dando eso.

Mil gracias de verdad!!