Que tal gente!
Estoy haciendo un buscador de archivos en local (PC). Es para la búsqueda de muchos archivos a la vez.
tengo dos variables que recibo por POST, una es el string de la búsqueda, ej:
2525
3662
...
Y la otra es el path, ej: c:/misarchivos/
Utilizo el siguiente script, pero no logro hacer que haga lo que quiero, pues solo me devuelve una coincidencia, y si está es la del primer string que separo del string principal, es decir, 2525. Por lo que veo el segundo bucle solo se ejecuta una vez!
Alguien me podrá echar una mano?
Código PHP:
if($_SERVER['REQUEST_METHOD'] == "POST"){
// Tomamos los valores ingresados en el formulario
$buscar = $_POST['consulta'];
$path = $_POST['url'];
//echo $path;
// Si está vacío, lo informamos, sino realizamos la búsqueda
if(empty($buscar)){
echo "No se ha ingresado una cadena a buscar";
}else{
$saltoLinea = chr(13);
// Obtengo los codigos numéricos separados ej: "5698"
while($pos !== false){
// Separo el string numerico
$pos = strpos($buscar, $saltoLinea, 1); //determinamos la ubicación del caracter marca "chr(13)"
$cap = substr($buscar, 0, $pos); //extraemos el primer numero
$largoCadena = $buscar - $pos;
$buscar = substr($buscar, $pos, $largoCadena);
//echo "Primer número: ".$cap."<br><br>";
//echo "Nuevo string: ".$buscar."<br><br>";
if ($gestor = opendir($path)){
//echo "Gestor de directorio: $gestor <br>\n";
//echo "Archivos: <br>\n";
/* Esta es la forma correcta de iterar sobre el directorio. */
while (false !== ($archivo = readdir($gestor))){
//echo "$archivo <br>\n";
if (strrpos($archivo, $cap)) {
echo "Archivo encontrado!!! <br>";
echo "$archivo<br>";
}else {
//echo "No se encontraron coincidencias!";
}
}
closedir($gestor);
}else{
echo "No se encontraron coincidencias!";
}
}
}
}