Função glob
A função glob busca arquivos e diretórios que correspondem a um padrão especificado.
O primeiro parâmetro recebe uma string com o padrão de busca.
O segundo parâmetro opcional define flags para alterar o comportamento da função.
Sintaxe
glob(pattern, [flags]);
Flags
| Flag | Descrição |
|---|---|
GLOB_MARK |
Adiciona uma barra / a cada diretório retornado. |
GLOB_NOSORT |
Retorna os arquivos na ordem em que estão no diretório (sem ordenação). |
GLOB_NOCHECK |
Retorna o padrão de busca se nenhuma correspondência for encontrada. |
GLOB_NOESCAPE |
Barras invertidas não escapam metacaracteres. |
GLOB_BRACE |
Expande {a,b,c} para busca por múltiplos padrões. |
GLOB_ONLYDIR |
Retorna apenas diretórios que correspondem ao padrão. |
GLOB_ERR |
Interrompe em caso de erros de leitura (por exemplo, sem permissão de acesso). |
Exemplo
Vamos encontrar todos os arquivos com a extensão .txt no diretório atual:
<?php
$res = glob('*.txt');
print_r($res);
?>
Resultado da execução do código:
['file1.txt', 'file2.txt', 'notes.txt']
Exemplo
Vamos encontrar todos os arquivos que começam com 'test' com qualquer extensão:
<?php
$res = glob('test*');
print_r($res);
?>
Resultado da execução do código:
['test.php', 'test.txt', 'test_image.jpg']
Exemplo
Uso da flag GLOB_BRACE para busca por múltiplos padrões:
<?php
$res = glob('*.{php,txt}', GLOB_BRACE);
print_r($res);
?>
Resultado da execução do código:
['index.php', 'config.php', 'readme.txt']
Exemplo
Busca de arquivos em subdiretórios usando a flag GLOB_RECURSE:
<?php
$res = glob('**/*.php', GLOB_BRACE|GLOB_RECURSE);
print_r($res);
?>
Resultado da execução do código:
['index.php', 'lib/utils.php', 'admin/index.php']
Veja também
-
a função
scandir,
que lê o conteúdo de um diretório -
a função
file_exists,
que verifica a existência de um arquivo -
a função
is_file,
que verifica se é um arquivo