Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/01/2019, 16:20
Avatar de xfxstudios
xfxstudios
 
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: Cómo buscar un directorio sólo sabiendo como empieza el nombre

Bueno bro, ya que nos llamaste brutos, te explico lo siguiente, no se si desde js se pueda hacer eso, pues ese código que indicas allí funciona creo solo en IE, por otro lado, yo delegaría esa tarea a php y que sea este quien me retorne la lista en cuestion ayudandome con expresiones regulares, por ejemplo:

Supongamos que tenemos una estructura de carpetas de esta manera:

/direct/2154-55-8478
/direct/222-22-4145
/direct/222-22-4585

Yo desde mi vista utilizaría ajax para hacer la peticion a mi php de esta manera:


Código Javascript:
Ver original
  1. var buscar = '2222-22';
  2.  
  3.     $.post('verifica.php',{folder:buscar}).done(function(resp){
  4.         if(resp !="201"){
  5.             var carpetas = eval("("+resp+")");
  6.             console.log(carpetas);
  7.         }
  8.     }).fail(function(err){
  9.  
  10.     })

y en mi php tendría el siguiente código:

Código PHP:
Ver original
  1. $base = './direct/';
  2. $patron = $_POST['folder']??'';
  3. $sale = [];
  4.  
  5. if($patron!=""){
  6.     if(is_dir($base)){
  7.         if($abre = opendir($base)){
  8.             while(($archivo = readdir($abre)) !== false){
  9.                 if($archivo !="." && $archivo !=".."){
  10.                     if(filetype($base . $archivo) == "dir"){
  11.                         preg_match('/('.$patron.')+(-.*)/', $archivo, $salida);
  12.                         if(is_array($salida) && count($salida)>0){
  13.                             array_push($sale,$salida[0]);
  14.                         }
  15.                     }
  16.                 }
  17.             }
  18.             closedir($abre);
  19.         }
  20.     }
  21.     echo (count($sale)>=1) ? json_encode($sale) : "201";
  22. }else{
  23.     echo "201";
  24. }

esto retornaría un 201 si no existe la información buscada o si por el contrario no se envio el valor, por ejemplo:

["2222-22-4145","2222-22-4585"]

y bueno, como se te informó más arriba, la recomendación era que utilizaras bases de datos para estos menesteres, pues es mejor y más fácil hacer un mantenimiento, pero bueno, cada quien con su sistema.

Saludos Bro.
__________________
[email protected]
HITCEL