Cita:
Iniciado por mortiprogramador
Saludo.
Bueno, pues ese código encuentra la primera coincidencia y la retorna,
en cuyo caso sirve pero no a totalidad para lo que se quiere.
Propongo manejar un arreglo para las n coincidencias (Inicializar $ret =array() antes del primer if,
así entonces en el primer return hacer esto
Luego, en el if que comprueba is_dir, no usar el if interno y su contenido,
y solo dejar esto
Código PHP:
Ver original$ret[]=buscar($dir.'/'.$archivo,$archivo_buscar);
Y finalmente, en vez de hacer return false en la parte final, retornar el arreglo.
Esto en cuanto a la función, y a la hora de invocar a la función,
el echo ya no se usaría directamente pues daría problemas
de conversión de array a string, por ende, se asignaría a una variable
lo que retorne esta función, y luego se recorrería con un for puede ser.
Código PHP:
Ver original$ret = buscar('laruta' ,$archivo);
echo 'Se encontraron '.sizeof($ret).' coincidencias</br>'; for($i = 0; $i < sizeof($ret); $i++) {
echo $ret[$i].'</br>';
else
{
echo $ret[$i][0].'</br>';
}
}
Hola que tal mortiprogramador me he topado con una funcion recursiva que hace lo que requiero.
Ahora tengo problemas con ella para ingresar el nombre del archivo a buscar desde un formulario, me podrias ayudar?
hago lo siguiente
Código PHP:
<form action="miarchivo.php" method="post" >
<input type= "text" name= "busca"/>
<input type= "submit"/>
</form>
class FileExtensionFilter extends FilterIterator
{
protected $archivos = $_POST['busca'];
public function accept() {
return in_array($this->getFilename(), $this->archivos);
}
}
if(isset($_POST['busca'] ))
{
$directorio = new RecursiveDirectoryIterator("/mi/directorio");
$recursive = new RecursiveIteratorIterator($directorio);
$filtrado = new FileExtensionFilter($recursive);
foreach ($filtrado as $archivo) {
echo $archivo . PHP_EOL;
}
}
y me devuelve error en la linea: " protected $archivos =$_POST['busca']; "
El error dice unexpected '$_POST' (T_VARIABLE) y no se de que forma recibirlo de manera correcta en mi PHP
GRACIAS