Include dotfiles excluding . and .. special dirs with .[!.]*
<?php
$all_files = array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)
glob — Buscar coincidencias de nombres de ruta con un patrón
La función glob() busca todos los nombres de ruta que
coinciden con pattern
según las reglas usadas por la
función glob() de la biblioteca estándar de C, las cuales son similares a
las reglas usadas por intérpretes de comandos comunes.
pattern
El patrón. No se realiza la expansión de tilde o la sustitución de parámetro.
flags
Banderas válidas:
GLOB_MARK
- Añade un barra a cada directorio devuelto
GLOB_NOSORT
- Devuelve los ficheros tal como aparecen en el
directorio (sin ordenar). Cuando no se emple este indicador, los parámetros se
ordenan alfabéticamente
GLOB_NOCHECK
- Devuelve el patrón de búsqueda si no
se encontraron ficheros coincidentes
GLOB_NOESCAPE
- Las barras invertidas no escapan
meta-caracteres
GLOB_BRACE
- Expande {a,b,c} para coincidir con 'a', 'b',
o 'c'
GLOB_ONLYDIR
- Devuelve sólo entradas de directorio
que coinciden con el patrón
GLOB_ERR
- Se detiene si se produjeron errores de lectura
(como directorios ilegibles), por defecto los errores son ignorados.
Devuelve una matriz que contiene los ficheros/directorios coincidentes, una matriz vacía
si no hubo ficheros coincidentes o false
si se produjo un error.
Nota:
En algunos sistemas es imposible distinguir entre una coincidencia vacía y un error.
Versión | Descripción |
---|---|
5.1.0 |
Se añadió GLOB_ERR
|
Ejemplo #1 Manera conveniente de cómo glob() puede remplazar a opendir() y similares.
<?php
foreach (glob("*.txt") as $nombre_fichero) {
echo "Tamaño de $nombre_fichero " . filesize($nombre_fichero) . "\n";
}
?>
El resultado del ejemplo sería algo similar a:
Tamaño de funclist.txt 44686 Tamaño de funcsummary.txt 267625 Tamaño de quickref.txt 137820
Nota: Esta función no funcionará en ficheros remotos ya que el fichero debe ser accesible vía el sistema de ficheros del servidor para poder ser examinado.
Nota: Está función no está disponible en algunos sistemas (p.ej. antiguos sistemas operativos de Sun).
Nota: La bandera
GLOB_BRACE
no está disponible en algunos sistemas que no son GNU, como Solaris.