(PHP 4 >= 4.3.0, PHP 5, PHP 7)
glob — Buscar coincidencias de nombres de ruta con un patrón
$pattern
[, int $flags
= 0
] )
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.