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;
}
?>
Código PHP:
$camino="/var/www/html/";
$buscar="index.php";
$nFlags="GLOB_BRACE";
globr($camino, $buscar, $nFlags);
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:
esto entiendo que es que si pongo en la variable $buscar "ind" me devolvera todos los ficheros que contengan ind ¿no?. Expande {a,b,c} para que coincida con 'a', 'b', o 'c'
GLOB_ONLYDIR
Cita:
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?.Devuelve únicamente entradas de directorios que coinciden con el patrón
Gracias por vuestra paciencia.
Un Saludo