PHP 8.4.2 Released!

glob

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

globEncontra caminhos que combinam com uma expressão

Descrição

glob(string $pattern, int $flags = 0): array|false

A função glob() procura por todos os caminhos que correspondem à expressão em pattern de acordo com as regras usadas pela função glob() da libc, que é semelhante às regras usadas por shells comuns.

O comportamento em sistemas Unix e macOS é determinado pela implementação de glob() no sistema. No Windows, é usada uma implementação que está em conformidade com a definição POSIX 1003.2 para glob() e inclui uma extensão para lidar com a convenção [!...] para negar um intervalo.

Parâmetros

pattern

O padrão. Não é feita nenhuma expansão de til ou substituição de parâmetros.

Caracteres especiais:

  • * - Corresponde a zero ou mais caracteres.
  • ? - Corresponde a exatamente um caractere (qualquer caractere).
  • [...] - Corresponde a um caractere de um grupo de caracteres. Se o primeiro caractere for !, corresponde a qualquer caractere que não estiver no grupo.
  • \ - Faz escape no caractere seguinte, exceto quando a opção GLOB_NOESCAPE for usada.

flags

Umas das constantes GLOB_*.

Valor Retornado

Retorna um array contendo os arquivos/diretórios que corresponderam, um array vazio se nenhum arquivo correspondeu ou false em caso de erro. A menos que GLOB_NOSORT tenha sido usada, os nomes serão ordenados alfabeticamente e numericamente.

Exemplos

Exemplo #1 Modo conveniente de como glob() pode susbstituir opendir() e companhia.

<?php
foreach (glob("*.txt") as $arquivo) {
echo
"tamanho de $arquivo " . filesize($arquivo) . "\n";
}
?>

O exemplo acima produzirá algo semelhante a:

tamanho de funclist.txt 44686
tamanho de funcsummary.txt 267625
tamanho de quickref.txt 137820

Exemplo #2 Exemplo com uma expressão mais complexa

<?php
foreach (glob("caminho/*/*.{txt,md}", \GLOB_BRACE) as $filename) {
echo
"$filename\n";
}
?>

O exemplo acima produzirá algo semelhante a:

caminho/docs/mailinglist-rules.md
caminho/docs/README.md
caminho/docs/release-process.md
caminho/pear/install-pear.txt
caminho/Zend/README.md

Notas

Nota: Esta função não funcionará em arquivos remotos, pois o arquivo a ser examinado deve ser acessível através do sistema de arquivos do servidor.

Nota: Esta função não está disponível em alguns sistemas (ex.: antigo Sun OS).

Veja Também

  • opendir() - Abre um manipulador de diretório
  • readdir() - Lê entrada do manipulador do diretório
  • closedir() - Fecha o manipulador do diretório
  • fnmatch() - Compara nome de arquivo com um padrão

adicione uma nota

Notas Enviadas por Usuários (em inglês) 1 note

up
4
Anonymous
3 years ago
Include dotfiles excluding . and .. special dirs with .[!.]*

<?php
$all_files
= array_merge(glob('.[!.]*'), glob('*'));
// or
$all_files = glob('{.[!.],}*', GLOB_BRACE);
?>
To Top