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
$fname= $_GET["valor"];
function findAllDirs($start) {
$dirStack=[$start];
while($dir=array_shift($dirStack)) {
$ar=glob($dir.'/*',GLOB_ONLYDIR|GLOB_NOSORT);
if(!$ar) continue;
$dirStack=array_merge($dirStack,$ar);
foreach($ar as $DIR)
yield $DIR;
}
}
$result=[];
foreach(findAllDirs('D:\xampp\htdocs\www\serverpruebas') as $dir) {
$match=glob($dir.'/'.$fname,GLOB_NOSORT);
if(!$match) continue;
$result=array_merge($result,$match);
}
echo '<pre>';
print_r($result);
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
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:
<?php
$buscar = $_GET['valor'];
$result = array();
$dir = new RecursiveDirectoryIterator('D:\xampp\htdocs\www\serverpruebas');
foreach(new RecursiveIteratorIterator($dir) as $archivo){
// Si no es un archivo, lo saltamos.
if(!$archivo->isFile()){ continue; }
$datos = array();
$datos['name'] = $archivo->getFilename();
// Si el nombre no coincide, saltar.
if($datos['name'] !== $buscar){ unset($datos); continue; }
$datos['size'] = $archivo->getSize();
$datos['date'] = date('Y-m-d H:i:s', $archivo->getMTime());
$result[] = $datos; unset($datos);
}
echo '<pre>';
print_r($result);
Resultado:
Array
(
[0] => Array
(
[name] => crunch.png
[size] => 1737
[date] => 2009-02-06 18:48:08
)
)
Saludos
Gracias #!drvy, no veas que dolor de cabeza me estaba dando eso.
Mil gracias de verdad!!