Foros del Web » Programando para Internet » PHP »

la funcion glob()

Estas en el tema de la funcion glob() en el foro de PHP en Foros del Web. Hola a Tod@s: Repasando el manual de PHP me he encontrado con la funcion glob() que para lo que yo pretendo me viene de "perlas". ...
  #1 (permalink)  
Antiguo 12/04/2005, 07:42
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 2 meses
Puntos: 0
Pregunta la funcion glob()

Hola a Tod@s:
Repasando el manual de PHP me he encontrado con la funcion glob() que para lo que yo pretendo me viene de "perlas".
El problema fue cuando cogiendo el ejemplo que trae el manual :

Código PHP:
<?php

function globr($sDir$sPattern$nFlags NULL) {
   
$aFiles glob("$sDir/$sPattern"$nFlags); 
   
$files getDir($sDir);
   if (
is_array($files)) {
       foreach( 
$files as $file ) {
           
$aSubFiles globr($file$sPattern$nFlags);
           
$aFiles array_merge($aFiles,$aSubFiles);
       }
   }
   return 
$aFiles;
}

function 
getDir($sDir) {
   
$i=0;
   if(
is_dir($sDir)) {
       if(
$rContents opendir($sDir)) {
           while(
$sNode readdir($rContents)) {
               if(
is_dir($sDir.'/'.$sNode )) {
                   if(
$sNode !="." && $sNode !="..") {
                       
$aDirs[$i] = $sDir.'/'.$sNode ;
                       
$i++;
                   }
               }
           }
       }
   }
   return 
$aDirs;
}

?>
y poniendolo a funcionar de esta manera:

Código PHP:
$camino="/var/www/html/";
$buscar="index.php";
$nFlags="GLOB_BRACE";
globr($camino$buscar$nFlags); 
Me da este error.
Warning: glob() expects parameter 2 to be long, string given in /var/www/html/panel/buscar.php on line 6
Si elimino la variable $nFlags funciona, como mi ingles es de "villadearriba" me tengo que conformar con la version en castellano (muy simplificada) y al darme ese error no puedo saber que hacen lo que llaman flags.

GLOB_BRACE
Cita:
Expande {a,b,c} para que coincida con 'a', 'b', o 'c'
esto entiendo que es que si pongo en la variable $buscar "ind" me devolvera todos los ficheros que contengan ind ¿no?.
GLOB_ONLYDIR
Cita:
Devuelve únicamente entradas de directorios que coinciden con el patrón
Se supone que sin este flag no devuelve los nombres de los directorios que contengan ind ni que se llamen index, pero si se pone ¿devuelve los directorios y los ficheros?.
Gracias por vuestra paciencia.
Un Saludo
__________________
Hay tanto que aprender y tan poco tiempo
  #2 (permalink)  
Antiguo 12/04/2005, 08:25
 
Fecha de Ingreso: marzo-2005
Mensajes: 163
Antigüedad: 19 años
Puntos: 0
MIra estoy mirando la documentacion y si no entiendo mal deberias usarlo asi:
$camino="/var/www/html/";
$buscar="{index.php}";
$nFlags=GLOB_BRACE;
globr($camino, $buscar, $nFlags);

Los flags son constantes, si utilizas las comillas estan asignando un string y no el valor long de la constante definida.
Probalo.
  #3 (permalink)  
Antiguo 12/04/2005, 12:00
Avatar de Torus  
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 22 años, 2 meses
Puntos: 0
Gracias MartinTandil:
No entiendo por que la variable que se pasa $buscar="{index.php}"; tiene que estar entre llaves, pero la verdad es que me funciona.
Un Cordial Saludo
__________________
Hay tanto que aprender y tan poco tiempo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:24.